我编写了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'
我try 将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)
}
}