2011-11-10 95 views
1

我創建一個UIImageView如下userInteractionEnabled工作的UIImageView奇怪

imageView = [[UIImageView alloc] init]; 

imageView.image = [UIImage imageNamed:@"military_male_target_001.png"]; 

imageView.frame = CGRectMake(0, 0, 10, 10); 

imageView.alpha = 0.5; 

,我有

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {...} 

在我的視圖控制器。

到目前爲止,圖像顯示在屏幕上並正確響應觸摸事件,這意味着touchesEnded方法在單擊圖像內部時調用。

,但如果我添加

imageView.userInteractionEnabled = YES 

然後touchesEnded方法不會當我點擊圖像中調用。 但是當我點擊圖像之外時它仍然被調用。

誰能告訴我userInteractionEnabled是如何工作的? 在此先感謝。

回答

1

它未被調用的原因是因爲您授予了imageView捕獲觸摸的權限。 imageView現在將獲得觸摸事件,而不是轉發它。除非您計劃創建處理觸摸事件的自定義UIImageView,否則不需要將userInteractionEnabled設置爲YES

Documentation

新圖像的查看對象被配置爲通過 默認忽略用戶事件。如果要處理UIImageView的自定義子類 中的事件,則必須在初始化該對象後明確將 userInteractionEnabled屬性的值更改爲YES。

+0

謝謝。我認爲這個事件最終會傳遞給家長。 – newme