我有3個UIView,分層在一個大型uiview之上。我想知道用戶是否觸及頂級用戶而不關心其他用戶。我將在第二個UIView中有幾個按鈕,在第三個UIView中有一個UITable。檢測某些UIView是否在其他UIView中被觸及
問題是我在第一個視圖上關閉了userInteractionEngabled,並且該視圖可以正常工作,但所有其他視圖以同樣的方式響應,即使我關閉它。如果我在self.view上禁用userInteractionEnabled,它們都不會響應。我也無法檢測touchesBegan委託方法中觸摸了哪個視圖。
我的代碼:
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)];
aView = userInteractionEnabled = YES;
[self.view addSubview:aView];
UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 50)];
bView.userInteractionEnabled = NO;
[self.view addSubview:bView];
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//This gets called for a touch anywhere
}
對不起,我知道你在正確的軌道上,但我有點麻煩,你完全不知道你在說什麼。我得到了從您的locationInView接觸觸及的點,我可以在技術上確定用戶觸摸哪個uiview,但我不知道它是如何調用hitTest – Rudiger 2010-05-08 08:33:21
應該注意的是,調用'locationInView:'參數爲' nil'給你在主窗口座標空間中的位置'CGPoint'。 – 2012-03-13 00:48:39