我有UIViewController。并且3 UIView里面如何独立检测触摸。
我有3个类,并在UIViewController中添加了对象
并且在每个类中都有这个方法,我需要触摸对象(UIView)独立响应事件
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
示例:
view1 NSLog(@“I Touched View 1”);
view2 NSLog(@“I Touched View 2”);
view3 NSLog(@“I Touched View 3”);
谢谢!
答案 0 :(得分:4)
如果所有三个视图都是viewController视图的后代,则可以使用以下代码片段
for (UITouch *t in touches) {
CGPoint p = [t locationInView:self.view];
UIView *v = [self.view hitTest:p withEvent:event];
NSLog(@"touched view %@", v);
}
修改强>
好吧,我猜你只有一个入口入口点(UIViewController
)用于触摸检测你的子视图;如果像你说的那样,每个子视图都有一个课程,那么你已经解决了问题。除了将NSLog(@"touched..")
代码放在每个touchBegan:withEvent:
方法中之外,您无需执行任何其他操作。
E.g。
@implementation FirstSubview
.
.
-( void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"I touched View 1");
}
.
.
@end
注意:由于UIViewController
也是UIResponder
(即继承自UIResponder
),您也可以使用我发布的第一个解决方案。