2013-07-19 4 views
-2

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

+0

Добавить распознаватель жесты к изображению (и не забудьте установить userInteractionEnabled в yes для представления изображения, по умолчанию это не так). – rdelmar

ответ

1

UITapGestureRecognizer, и не забудьте установить imageView.userInteractionEnabled = YES; потому что по умолчанию изображение не имеет UserInteraction.

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 
[singleTap setNumberOfTapsRequired:1]; 

[imageView addGestureRecognizer:singleTap]; 


-(void)handleSingleTap:(id)sender { 
// push you view here 
} 

(OR) Если вы хотите

кнопки взять с фоновым изображением.

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

button.frame = CGRectMake(270,10,30,30); 

[button setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal]; 

[button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; 
+0

@ Coder123: это решена ваша проблема? – Balu

+0

да .. достигнуто то, что я хотел сделать .. спасибо – Shradha

0

Вместо использования UIImageView, вы можете использовать UIButton.

UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [myBtn setBackgroundImage:[UIImage imageNamed:@"your_image_Name"] forState:UIControlStateNormal]; 
    [myBtn setBackgroundImage:[UIImage @"your_image_Name"] forState:UIControlStateHighlighted]; 
    [myBtn addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; 

также написать кнопку действия:

-(void)buttonAction:(id)sender { 
// Do whatever you want 
} 

В случае XIB, просто использовать UIButton вместо UIImageView и установить фоновое изображение для обоих состояния Normal & Мелированные, как вы хотите. Остальное вы можете управлять действием кнопки из XIB.

+0

внимательно перечитайте вопрос – stosha

+0

@stosha, что случилось с его ответом? – 0xSina

+0

Плакат уже знает об UIbButton. – sosborn

0

Вы также можете добавить полностью прозрачный UIButton поверх UIImageView ... Это должно быть предпочтительным, так как каждый элемент имеет чистую семантику.

Смежные вопросы