您的位置:首页 > 产品设计 > UI/UE

IOS开发--给UIImageView添加touch事件

2013-12-25 14:35 316 查看

IOS开发--给UIImageView添加touch事件

分类: IPhone开发中级系列2013-05-29
17:25 942人阅读 评论(1) 收藏 举报UIImageViewtoucheeventIOSAdd Tap gesture
UITapGestureRecognizer
to
myImageView
view
(type of
UIImageView
).
UITapGestureRecognizer *myTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureTapEvent:)];
myImageView.userInteractionEnabled = YES;
[myImageView addGestureRecognizer:myTapGesture];
[myTapGesture release];
Implement
gestureTapEvent:
method
to receive the touch event.
-(void)gestureTapEvent:(UITapGestureRecognizer *)gesture {
UIImageView* myImageView = (UIImageView*)gesture.view ;
}

Then when you implement your 
imageViewClicked
method, you can get the tapped ImageView using the
view
property of the GestureRecognizer. Starting from that, you can for example:use the tag of your imageView (if you affected it in your
tableView:cellForRowAtIndexPath:
method) to retrieve the tag and do whatever you want with it (depending on what you affected it to, for example you may have set
imageView.tag = indexPath.row
in
tableView:cellForRowAtIndexPath:
and get that indexPath row back then)
Go thru the superviews of the imageView up to the UITableViewCell, then ask for its indexPath to get it back and do whatever you want with it.
Example:
-(void)imageViewClicked:(UITapGestureRecognizer*)gestRecognizer
{
UIImageView* iv = (UIImageView*)gestRecognizer.view;
NSInteger tag = iv.tag; // then do what you want with this

// or get the cell by going up thru the superviews until you find it
UIView* cellView = iv;
while(cellView && ![cellView isKindOfClass:[UITableViewCell class]])
cellView = cellView.superview; // go up until you find a cell

// Then get its indexPath
UITableViewCell* cell = (UITableViewCell*)cellView;
NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: