Jon*_*son 3 cocoa-touch uikit uiview ios swift
我想要UIView一个属性,它返回层次结构中视图的所有祖先的序列。这对于查找与特定类型匹配的最近的一个这样的目的很有用:
let tableView = cell.ancestors.first(where: { $0 is UITableView })
Run Code Online (Sandbox Code Playgroud)
实现该属性的好方法是什么ancestors?
使用Swift 标准库sequence(first:next:)中的函数,还可以实现更短的解决方案:
extension UIView {
var ancestors: AnySequence<UIView> {
return AnySequence<UIView>(
sequence(first: self, next: { $0.superview }).dropFirst())
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |