ISO给UIImageView增加点击事件

来源:互联网 发布:网红喵大仙的淘宝店 编辑:程序博客网 时间:2024/04/30 02:04

自己做了一个九宫格,里面的图标都是由多张图片重叠构成,然后包装成一个button来使用;

遇到的问题是如何给这个“button”增加点击事件?

解决思路1:网友提示在该“button”上增加一个真正的透明button,这样就可以顺利执行点击事件了;但是本人尝试发现,如果我调整了button的透明度后,点击是没有效果的!可能是我操作错误,待再次验证。

解决思路2:为UIImageView增加手势

[ImageView addGestureRecognizer:我们自己的手势recognizer];

如何创建一个手势?看看UITapGestureRecognizer 的用法吧。

View Row Code
//单指单击UITapGestureRecognizer*singleFingerOne = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSingleFingerEvent:)];singleFingerOne.numberOfTouchesRequired = 1; //手指数singleFingerOne.numberOfTapsRequired = 1; //tap次数singleFingerOne.delegate= self;//单指双击UITapGestureRecognizer*singleFingerTwo = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSingleFingerEvent:)];singleFingerTwo.numberOfTouchesRequired = 1;singleFingerTwo.numberOfTapsRequired = 2;singleFingerTwo.delegate= self;//双指单击UITapGestureRecognizer*doubleFingerOne = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleDoubleFingerEvent:)];doubleFingerOne.numberOfTouchesRequired = 2;doubleFingerOne.numberOfTapsRequired = 1;doubleFingerOne.delegate= self;UITapGestureRecognizer*doubleFingerTwo = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleDoubleFingerEvent:)];doubleFingerTwo.numberOfTouchesRequired = 2;doubleFingerTwo.numberOfTapsRequired = 2;doubleFingerTwo.delegate= self;//如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理[singleFingerOnerequireGestureRecognizerToFail:singleFingerTwo];//同理双指亦是如此[doubleFingerOnerequireGestureRecognizerToFail:doubleFingerTwo];[self.view addGestureRecognizer:singleFingerOne];[self.view addGestureRecognizer:singleFingerTwo];[self.view addGestureRecognizer:doubleFingerOne];[self.view addGestureRecognizer:doubleFingerTwo];[singleFingerOnerelease];[singleFingerTworelease];[doubleFingerOnerelease];[doubleFingerTworelease];处理事件的方法,代码://处理单指事件- (void)handleSingleFingerEvent:(UITapGestureRecognizer*)sender{if(sender.numberOfTapsRequired== 1) {//单指单击NSLog(@"单指单击");}elseif(sender.numberOfTapsRequired== 2){//单指双击NSLog(@"单指双击");}}//处理双指事件- (void)handleDoubleFingerEvent:(UITapGestureRecognizer*)sender{if(sender.numberOfTapsRequired== 1) {//双指单击NSLog(@"双指单击");}elseif(sender.numberOfTapsRequired== 2){//双指双击NSLog(@"双指双击");}}
0 0
原创粉丝点击