Обнаруживать, когда на просмотре нажимают

У меня есть несколько представлений внутри ViewController, и я хочу знать, когда на них нажимают, и я не уверен, как это сделать.


person Byte Me    schedule 24.06.2014    source источник
comment
Я предполагаю, что это iOS, однако термин нажатие подразумевает использование мыши. Пожалуйста, отредактируйте свои теги.   -  person trojanfoe    schedule 24.06.2014
comment
В iOS все постукивают. Не на что нажимать.   -  person Fogmeister    schedule 24.06.2014
comment
Да, возможно, возникли проблемы с поиском ответа   -  person Byte Me    schedule 24.06.2014


Ответы (1)


Чтобы проверить, был ли затронут определенный вид внутри другого представления, вы можете использовать hitTest.

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;

В вашей пользовательской реализации touchBegan проверяйте каждое касание в наборе касаний. Балл за метод hitTest можно получить, используя

- (CGPoint)locationInView:(UIView *)view;
method, where the view is your superView (the one that contains other views).

РЕДАКТИРОВАТЬ: Вот быстрая индивидуальная реализация:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    CGPoint locationPoint = [[touches anyObject] locationInView:self];
    UIView* viewYouWishToObtain = [self hitTest:locationPoint withEvent:event];
}

Надеюсь, это было полезно, Пол

Источники: Определить, был ли затронут определенный UIView среди других UIViews

person StrawHara    schedule 24.06.2014