Я просто становлюсь установленным с разработкой 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];
Что я должен сделать для переопределения сенсорных событий?
спасибо
Хотя это не полный ответ на ваш вопрос, я думаю, что следующее решение могло бы быть лучше, чем использование "обходного пути невидимой кнопки" .. просто подкласс 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."
}
надеюсь, что это поможет ...
Я не нашел способа сделать это напрямую с помощью UIImageView
. Но если вы подклассифицируете его и переопределите метод nextResponder
для возврата делегата под вашим контролем, вы сможете делать то, что вам нужно. Предоставьте делегат как свойство подкласса, а затем вы можете передать делегат для событий касания и изменить его в любое время.
Я видел в других ответах предложение поместить невидимую кнопку под UIImageView, установить представление изображения в userInteractionEnabled: NO
, и позволять касаниям проходить через кнопку.