сенсорный обработчик событий для UIImageView

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

Кажется, что я должен смочь программно создать UIImageView и затем настроить обработчик событий, поскольку это - сенсорные функции.

в c# у меня было бы что-то, что похоже

Кнопка b = новая Кнопка (); b. Нажмите + = мой код обработчика

прямо сейчас у меня есть это

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 141.0f, 151.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];

myImage.userInteractionEnabled = YES;
[myImage setImage:[UIImage imageNamed:@"myImage.png"]];
myImage.opaque = YES; // explicitly opaque for performance
[self.view addSubview:myImage];
[myImage release];

Что я должен сделать для переопределения сенсорных событий?

спасибо

5
задан madmik3 29 July 2010 в 19:10
поделиться

3 ответа

Хотя это не полный ответ на ваш вопрос, я думаю, что следующее решение могло бы быть лучше, чем использование "обходного пути невидимой кнопки" .. просто подкласс UIImageView и переопределите следующий метод:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{

 //your UIImageView has been touched :)

 //event -> "A UIEvent object representing the event to which the touches belong."

 //touches -> "A set of UITouch instances in the event represented by event that    represent the touches in the UITouchPhaseEnded phase."

}

надеюсь, что это поможет ...

9
ответ дан 18 December 2019 в 09:49
поделиться

Я не нашел способа сделать это напрямую с помощью UIImageView . Но если вы подклассифицируете его и переопределите метод nextResponder для возврата делегата под вашим контролем, вы сможете делать то, что вам нужно. Предоставьте делегат как свойство подкласса, а затем вы можете передать делегат для событий касания и изменить его в любое время.

0
ответ дан 18 December 2019 в 09:49
поделиться

Я видел в других ответах предложение поместить невидимую кнопку под UIImageView, установить представление изображения в userInteractionEnabled: NO, и позволять касаниям проходить через кнопку.

0
ответ дан 18 December 2019 в 09:49
поделиться
Другие вопросы по тегам:

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