0
我有這樣的一些嵌套的意見:爲什麼觸摸事件不會到達我的UIImageView?
首先,有一個大的UIView。在這裏面,有另一個UIView。在這裏面,有一個從UIView繼承的MyNiceButtons類。所以我有:
UIView> UIView> MyNiceButtons(=一個UIView)。
詳細地說,UIView創建一個UIImageView並將其作爲子視圖添加到自己,它代表一個圖形按鈕。所以MyNiceButtons類實現裏面,我有這樣的代碼,以假按鈕圖像處理上的觸摸事件:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject]; // i just need single touches
// just to see which view is affected
UIView *tview = [touch view];
CGRect rect = tview.frame;
rect.origin.x = rect.origin.x + 20.0f;
tview.frame = rect;
[tview setBackgroundColor:[UIColor yellowColor]];
if ([touch view] == self.fakeButtonImageView) {
NSLog(@"touch on fake button detected");
}
}
層次中的所有觀點都userInteractionEnabled = YES。觸摸到達層次結構中的第一個視圖(父級的父級)。
UIView *tview = [touch view];
這隻會返回父級的父級,但不會返回用戶實際點擊的UIImageView。
識別觸摸是否在UIImageView按鈕上的技巧是什麼?
是MyNiceButtons一個UIImageView子類,或者有一個UIImageView – 2009-07-19 22:47:52
的UIView的「A」包含一個UIView的「B」,其中包含一個的UIImageView。 UIView「B」有觸摸檢測代碼,並詢問它是否發生在UIImageView上。 – Thanks 2009-07-20 08:43:31