相关疑难解决方法(0)

如何从Swift中的UIView中删除所有手势识别器

我编写了Swift代码,试图从给定自定义UIView类型的所有子视图中删除所有手势识别器.

let mySubviews = self.subviews.filter() {
   $0.isKindOfClass(CustomSubview)
}
for subview in mySubviews {
   for recognizer in subview.gestureRecognizers {
      subview.removeGestureRecognizer(recognizer)
   }
}
Run Code Online (Sandbox Code Playgroud)

但该for recognizer行会产生编译错误:

'[AnyObject]?' does not have a member named 'Generator'
Run Code Online (Sandbox Code Playgroud)

我已经尝试将for recognizer循环更改为for recognizer in enumerate(subview.gestureRecognizers),但这会产生编译器错误:

Type '[AnyObject]?!' Does not conform to protocol 'SequenceType'
Run Code Online (Sandbox Code Playgroud)

我看到UIView的gestureRecognizers方法返回了[AnyObject]??,我认为双重包裹的返回值正在绊倒我.谁能帮我?

更新:修改,编译代码是:

if let recognizers = subview.gestureRecognizers {
   for recognizer in recognizers! {
      subview.removeGestureRecognizer(recognizer as UIGestureRecognizer)
   }
}
Run Code Online (Sandbox Code Playgroud)

optional uiview uigesturerecognizer ios swift

50
推荐指数
3
解决办法
4万
查看次数

标签 统计

ios ×1

optional ×1

swift ×1

uigesturerecognizer ×1

uiview ×1