UIButton Touch Forwarding не работает в iOS5 (только для iPad)
Кажется, я не могу понять, почему этот код для пересылки сенсорного UIButton перестал работать в iOS5:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
[self.nextResponder touchesBegan:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesMoved:touches withEvent:event];
[self.nextResponder touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesEnded:touches withEvent:event];
[self.nextResponder touchesEnded:touches withEvent:event];
}
Когда я регистрирую методы касаний следующего респондента, я вижу, что перемещенные касания передаются только один раз, а завершенные касания вообще не передаются. Это очень неожиданное поведение, так как все касания пересылаются в iOS4. Любая помощь будет оценена.
1 ответ
Решение
В то время как комментаторы могли заставить этот код нормально работать в своих тестах, мне не удалось заставить его надежно работать в iOS5. Мое решение состояло в том, чтобы использовать делегирование, чтобы передать прикосновения заинтересованной стороне. Не элегантный или предпочтительный, но до сих пор работал нормально без каких-либо ошибок.