原本是用一個delegate去選擇touch要停留在那一個UIView回應,
後來發現下面這個方式更好,你可以隨意選擇你要按那一個UIView甚至可以同時觸發二個以上!
把要touch事件trigger寫在UIViewController中,如下面三個function,
然後把要觸發的UIView都加到這個UIViewController中,用下列方式呼叫,
這樣的好處是也可以對父類別的touch事件做呼叫
// Pass touches on to the AR view (EAGLView)
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
// pass events down to parent ViewController
// super是用來呼叫父類別的方法
[super touchesBegan:touches withEvent:event];
// 對自己view做匯入,之後以自己收到的touch去呼叫view的touch事件
[arViewController.arView touchesBegan:touches withEvent:event];
}
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
{
[arViewController.arView touchesEnded:touches withEvent:event];
}
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
// Implemented only to prevent the super class methods from executing
}
// 在使用這個方式前,記得在其他view加入下面指令,以確保touch事件都能直接觸到parientViewController
self.userInteractionEnabled = NO;
沒有留言:
張貼留言