ComposableStyling 2.0.0

ComposableStyling 2.0.0

Takeshi Fujiki 维护。



  • takecian

ComposableStyling

ComposableStyling 为视图样式和可组合操作符提供了一组函数。

可组合操作符

<> 操作符用于组合具有相同签名的函数。

precedencegroup SingleTypeComposition {
    associativity: left
}

infix operator<>: SingleTypeComposition

public func <> <A: AnyObject>(f: @escaping (A) -> Void, g: @escaping (A) -> Void) -> (A) -> Void {
    return { a in
        f(a)
        g(a)
    }
}

安装

pod 'ComposableStyling'

使用方法

1. 通过组合要应用的样式函数来创建样式函数。

例如,如果我们想:

  • 设置背景颜色为红色
  • 设置边框颜色为蓝色,宽度为 10

我们可以通过组合两个函数来创建样式函数。

let style = styleViewBackgroundColor(.red) <>
            styleViewBorder(color: .blue, width: 10)
  1. 将样式函数应用到底视图中。
let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
style(view)

比较

ComposableStyling帮助我们理解应用的设计。

之前

let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
view.backgroundColor = .red
view.layer.cornerRadius = 30
view.layer.masksToBounds = true
view.layer.borderWidth = 10
view.layer.borderColor = .blue

之后

let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))

let style = styleViewBackgroundColor(.red) <>
            styleViewCornerRadius(30) <>
            styleViewBorder(color: .blue, width: 10)

style(view)