,
" ". UIView
subviews, , .
(, ), a Generator,
, forEach().
( Swift.)
extension SequenceType {
public func generate<S : SequenceType where S.Generator.Element == Generator.Element>
(children children: Generator.Element -> S) -> AnyGenerator<Generator.Element> {
var selfGenerator = self.generate()
var childGenerator : AnyGenerator<Generator.Element>?
return anyGenerator {
if childGenerator != nil {
if let next = childGenerator!.next() {
return next
}
}
if let next = selfGenerator.next() {
childGenerator = children(next).generate(children: children)
return next
}
return nil
}
}
}
, view UIView,
view.subviews.generate(children: { $0.subviews })
() () . forEach() , :
view.subviews.generate(children: { $0.subviews }).forEach {
$0.backgroundColor = UIColor.clearColor()
}
:
let allViews = Array(view.subviews.generate(children: { $0.subviews }))