Я написал код 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]??
, и я думаю, что возвращаемые значения с двойным завершением меня отключают. Кто-нибудь может мне помочь?
UPDATE: Пересмотренный код компиляции:
if let recognizers = subview.gestureRecognizers {
for recognizer in recognizers! {
subview.removeGestureRecognizer(recognizer as UIGestureRecognizer)
}
}