如何触摸特定视图。
我正在使用
CGPoint Location = [[touches anyObject] locationInView:self.view ];
但是只有在点击特定的子视图时才想触发动作 怎么做。
答案 0 :(得分:8)
我自己得到了答案......但感谢其他帮助我的人
这里是
UITouch *touch ;
touch = [[event allTouches] anyObject];
if ([touch view] == necessarySubView)
{
//Do what ever you want
}
答案 1 :(得分:7)
试试这个
//here enable the touch
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// get touch event
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self.view];
if (CGRectContainsPoint(yoursubview_Name.frame, touchLocation)) {
//Your logic
NSLog(@" touched");
}
}
答案 2 :(得分:1)
您应该创建UIView的子类(或创建一个类别)并覆盖
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
将邮件重定向到适当的委托。
答案 3 :(得分:1)
// here Tiles is a separate class inherited from UIView Class
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ([[touch view] isKindOfClass:[Tiles class]]) {
NSLog(@"[touch view].tag = %d", [touch view].tag);
}
}
像这样你可以找到视图或子视图被触及
答案 4 :(得分:1)
这是没有多点触控的swift3版本:
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first, self.bounds.contains(touch.location(in: self)) {
// Your code
}
}
答案 5 :(得分:0)
你试过吗
CGPoint Location = [[touches anyObject] locationInView:necessarySubView ];