Objectiv-C 为UIImageView,UILabel等默认没有交互的控件添加点击事件

在OC的UI中,一些常用的控件如UIImageView,UILabel等默认是没有交互的,就是在控件上点击,双击或者滑动等操作是没有效果的。

下面的方法较为完美的解决了控件的交互问题:

(以UIImageView为例,其他控件类似)

首先,创建一个UIImageView:

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

//设置imageView图片
[imageView setImage:[UIImage imageNamed:@"first.jpg"]];

//设置imageView的userInteractionEnabled为YES,即开启交互
imageView.userInteractionEnabled = YES;

然后,创建一个手势,这里以单击手势为例:

//创建单击手势tap,并指定处理方法为SingleClick
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(SingleClick:)];

第三步,为imageView添加手势

[imageView addGestureRecognizer:tap];

最后,实现单击方法SingleClick

- (void)SingleClick:(UITapGestureRecognizer *)tap
{
    //通过手势tap获取到单击的View
    UIImageView *imageView = (UIImageView *)[tap view];
    
    //下面就可以对单击的View进行操作了
    //注意:强转类型时要确保正确,什么类型控件添加了手势tap,转型就是什么类型
}

  

 


转载请注明:作者SmithJackyson

posted @ 2016-01-09 14:33  SmithJackyson  阅读(399)  评论(0编辑  收藏  举报