Первый.
Вы можете получить прикосновение к любому объекту, который имеет суперкласс как UIView
.
, если вы увидите UIImageView в документации Apple.
UIView : UIResponder : NSObject
UIResponder имеет функцию для получения прикосновений.Поэтому реализуйте перечисленные ниже функции в вашем классе представления и обнаруживайте касания на UIImageView
.
– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:
Секунда:
Вы также можете создать UITapGestureRecognizer
для UIImageView
.
Ознакомьтесь с приведенным ниже учебником блога.
Работа с UIGestureRecognizers
РЕДАКТИРОВАНИЕ:
Используйте следующий код:
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[MyImageView addGestureRecognizer:tapRecognizer];
если пользователь нажмет один раз, будет вызвана функция tapped , поэтому реализация функции с вкладками должна выглядеть следующим образом
-(void)tapped:(id)sender
{
NSLog(@"See a tap gesture");
ProfileViewController * profile = [[ProfileViewController alloc] init];
UIImageView * temp = [(UIPanGestureRecognizer*)sender view];
profile.uid = [[[posts objectAtIndex:((UIImageView *)sender).tag] creator] mid];
NSLog(@"profile id %@", profile.uid);
UIPopoverController * profilePop = [[UIPopoverController alloc] initWithContentViewController:profile];
[profilePop presentPopoverFromRect:CGRectMake(temp.frame.origin.x+temp.frame.size.width, temp.frame.origin.y + temp.frame.size.height/2, profile.view.frame.size.width, profile.view.frame.size.height) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}