Как вы говорите, какой объект трогается в TouchesBegan?
-
27-09-2019 - |
Вопрос
Я знаю, что это очень задаваемый вопрос, но все ответы на каждом веб-сайте не работают! Если вы все еще не знаете, что я имею в виду, то, возможно, эта строка кода поможет вам понять.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];
if (touch.view == nextbutton)
[self performSelector:@selector(next)];
if (touch.view == prevbutton)
[self performSelector:@selector(previous)];
if (touch.view == moreoptionsbutton)
[self performSelector:@selector(moresettings)];
}
Это ничего не делает, когда вы прикасаетесь nextbutton, prevbutton, and more optionsbutton
, которые UIImageViews
Кстати. Я также пытался использовать isEqual:
вместо ==
, но это тоже не разрабатывалось. Какие-либо предложения?
Решение
Вы должны установить UserinterActeenableD = YES для всех ваших UiimageViews, иначе они не будут получать сенсорные события. Также измените строку:
UITouch *touch = [[event allTouches] anyObject];
к
UITouch *touch = [touches anyObject];
Другие советы
Я создал проверку, чтобы убедиться, что его представление, которое я ожидаю, чтобы нажать перед продолжением.
if( [touch.view isKindOfClass:[Custom class]] ){
CGPoint touchPoint = [touch locationInView:self.view];
if( CGRectContainsPoint( self.customClassOne.frame, touchPoint )
|| CGRectContainsPoint( self.customClassTwo.frame, touchPoint ) ){
[self touchOnCustomClass];
}
}
Не связан с StackOverflow