У меня есть UIButton
, который реагирует только на мои жесты касания, когда я нажимаю на очень маленькую подзону внутри него. Я assuming, что, возможно, другой взгляд проглатывает мои жесты, когда я нажимаю в других местах внутри кнопки.Как узнать представление, которое принимает текущий жест
вопрос есть .. есть способ узнать, какой UIView
точно принимает краны? Я знаю, что могу переборщить его с привязкой всех обработчиков жестов ко всем моим взглядам .. но кажется слишком много работы. есть идеи?
обновление: ответ Ахмеда ниже работал отлично .. Я также добавил к нему UIView-х recursiveDescription найти вид обижая быстро.
т.е. если я поставил точку останова на линии NSLog:
- (void)sendEvent:(UIEvent *)event
{
[super sendEvent:event];
UIView *touchReceipientView =((UITouch *)[event.allTouches anyObject]).view;
NSLog(@"View = %@ ",touchReceipientView);
}
я получаю этот выход (в качестве примера):
(lldb) po [touchReceipientView recursiveDescription]
<UIView: 0x1fd16470; frame = (0 430; 320 40); layer = <CALayer: 0x1fd164d0>>
| <UIButton: 0x1fd13030; frame = (297 0; 18 19); opaque = NO; tag = 11; layer = <CALayer: 0x1fd130f0>>
| | <UIImageView: 0x1fd13190; frame = (-41 -40.5; 100 100); alpha = 0; opaque = NO; userInteractionEnabled = NO; tag = 1886548836; layer = <CALayer: 0x1fd131f0>>
| | <UIImageView: 0x1fd14d00; frame = (1 2; 16 15); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1fdc8e50>>
, который заставил меня идентифицировать нарушителя UIView немедленно!
Loop через представление, начиная с ключом окна вашего приложения, и отправить 'isFirstResponder' им. –
gestureRecognizer.view – Desdenova
@Desdenova Если бы у меня уже был объект gestureRecognizer, я думаю, что этот вопрос будет тривиальным, не так ли? – abbood