【发布时间】:2014-11-30 03:15:13
【问题描述】:
我编写了 Swift 代码,试图从给定自定义 UIView 类型的所有子视图中删除所有手势识别器。
let mySubviews = self.subviews.filter() {
$0.isKindOfClass(CustomSubview)
}
for subview in mySubviews {
for recognizer in subview.gestureRecognizers {
subview.removeGestureRecognizer(recognizer)
}
}
但for recognizer 行会产生编译器错误:
'[AnyObject]?' does not have a member named 'Generator'
我尝试将for recognizer 循环更改为for recognizer in enumerate(subview.gestureRecognizers),但这会产生编译器错误:
Type '[AnyObject]?!' Does not conform to protocol 'SequenceType'
我看到 UIView 的 gestureRecognizers 方法返回 [AnyObject]??,并且我认为双重包装的返回值让我感到困惑。谁能帮帮我?
更新: 修改后,编译代码为:
if let recognizers = subview.gestureRecognizers {
for recognizer in recognizers! {
subview.removeGestureRecognizer(recognizer as UIGestureRecognizer)
}
}
【问题讨论】:
标签: ios uiview swift uigesturerecognizer optional