Как Вы говорите, какой объект затрагивается в touchesBegan?

Я знаю, что это - очень обычно задаваемый вопрос, но все ответы на каждом веб-сайте не работают! Если Вы все еще не будете знать то, что я имею в виду, то, возможно, эта строка кода поможет Вам понять.


- (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: вместо ==, но это не удалось также. Какие-либо предложения?

16
задан Alex Cio 20 August 2015 в 12:36
поделиться

1 ответ

Вы должны установить userinteractionEnabled = YES для всех ваших UIImageView, иначе они не будут получать события касания. Также измените строку:

 UITouch *touch = [[event allTouches] anyObject];

на

 UITouch *touch = [touches anyObject];
35
ответ дан 30 November 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: