UIImageView關聯響應方法

UIView類可以響應Touth事件,我們可以給UIView類關聯觸摸響應的方法,以UIImageView爲例子,爲UIImageView關聯響應的方法

   // 創建一個imageView
     CGRect imageRect = CGRectMake(10, 10, width-20, width-20);
     UIimageView* imageView = [[UIImageView alloc]initWithFrame:imageRect];
        imageView.image = [UIImage imageNamed:imageUrl];
        imageView.layer.masksToBounds =YES;
        imageView.layer.cornerRadius =60;
    //添加關聯的方法 shopTap:
      UITapGestureRecognizer *Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(shopTap:)];
      Tap.numberOfTapsRequired = 1;//點擊一次觸發
      Tap.numberOfTouchesRequired = 1;//點擊需要的手指數量
      [imageView addGestureRecognizer:Tap];

但是有時候發現添加了 gesture也不能響應方法,原因是:特殊子類的覆蓋
userInteractionEnabled屬性默認值爲YES,但UIView的一些子類中對該屬性進行了覆蓋,並將其默認值設置爲了NO,其中UIImageView和UILabel就是這樣的類 。userInteractionEnabled屬性在UIImageView和UILabel的文檔中都有簡單的描述。在實際的界面開發過程中,我們經常用UIImageView來模擬按鈕或其它可以響應用戶touch事件的顯示區,並通過gesture來爲其添加事件響應,因此爲了保證事件能正常的接受,我們必須要顯示的將UIImageView對象的userInteractionEnabled的值設爲YES 。

[imageView setUserInteractionEnabled:YES];

然後就可以響應shopTap方法了

- (void)shopTap:(UITapGestureRecognizer *)tapGesture
{
    //do something

}

userInteractionEnabled屬性介紹

http://my.oschina.net/hmj/blog/108002

UIView用戶響應事件

http://blog.sina.com.cn/s/blog_6dce99b10101l0qd.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章