转载

Together

Together

来源

最近在调试项目中的性能的时候,经常修改一大堆相同的属性,比如

timeLabel.isOpaque = true
pageLabel.isOpaque = true
ideaLabel.isOpaque = true
tagsLabel.isOpaque = true

就在思想能不能简单的通个一个方法,传入数据源,然后来设置相同的属性,于是 Together 就产生了,使用 Together 之后代码

timeLabel.together(values: pageLabel, ideaLabel, tagLabel).do {
    $0.isOpaque = true
}

使用方法也比较简单

思路

整体思路也比较简单,利用 SwiftProtocolExtension ,默认为 AnyObject 和遵守 Hashable 的类添加不同的方法

// 返回传入数组的TogetherArray
func together(values: Self...) -> TogetherArray<Self>
// 返回传入数组处理成Set的TogetherSet
func together(values: Self...) -> TogetherSet<Self>

然后分别为其添加 do 方法来进行数组遍历执行共同的属性

github

Together

原文  http://archerzz.com/swift/together.html
正文到此结束
Loading...