【发布时间】:2011-03-04 10:53:16
【问题描述】:
如何接触特定视图。
我正在使用
CGPoint Location = [[touches anyObject] locationInView:self.view ];
但希望仅在单击特定子视图时触发操作。
如何做到这一点。
【问题讨论】:
如何接触特定视图。
我正在使用
CGPoint Location = [[touches anyObject] locationInView:self.view ];
但希望仅在单击特定子视图时触发操作。
如何做到这一点。
【问题讨论】:
我自己得到了答案...但感谢其他帮助我的人
这里是
UITouch *touch ;
touch = [[event allTouches] anyObject];
if ([touch view] == necessarySubView)
{
//Do what ever you want
}
【讨论】:
试试这个
//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");
}
}
【讨论】:
您应该创建一个 UIView 的子类(或创建一个类别)并覆盖
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
将消息重定向到适当的委托。
【讨论】:
// 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);
}
}
这样你可以找到视图或子视图被触摸
【讨论】:
这是一个没有多点触控的 swift3 版本:
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first, self.bounds.contains(touch.location(in: self)) {
// Your code
}
}
【讨论】:
你试过了吗
CGPoint Location = [[touches anyObject] locationInView:necessarySubView ];
【讨论】: