有没有办法可以查询UIView,以确定它目前是否被触摸?我问的原因是因为我正在使用“已触及的开始”,“触摸已结束”和“触摸移动”来将UIView保留在用户的手指下。但是,如果用户非常快地移动他/她的手指并设法“逃离”窗口,我想移除该窗口。
我在想我可以使用定时器来定期测试每个视图,以确定它是否正在被触摸,如果不是,我将删除它。一个“IsTouchedProperty”将是完美的。 有什么想法?如何确定UIView当前是否被触摸?
1
A
回答
1
我有一个类似的问题,并通过使用tracking
属性解决它。从文档:
一个布尔值,指示接收方当前是否在跟踪与事件相关的触摸 。 (只读)
这是UIControl的一个方法,但是你不是试图创建一个吗?
您还可以hitTest
的意见。检查the apple docs
1
由于UIView不从UIControl继承,所以您需要继承UIView并使用触摸事件来滚动您自己的isTouching
属性。例如:
// MyView.h
@interface MyView : UIView
@property (nonatomic, assign) BOOL isTouching;
@end
// MyView.m
...
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
self.isTouching = YES;
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesCancelled:touches withEvent:event];
self.isTouching = NO;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
self.isTouching = NO;
}
相关问题
- 1. 如何确定屏幕是否仍然被触摸?
- 2. 当我触摸UIVIew
- 3. iphone - 确定是否在触摸一个UIView
- 4. 如何确定动画当前是否在UIView中播放?
- 5. 如何确定当前的Windows会话是否被锁定?
- 6. 使用GetSystemMetrics如何确定屏幕是否是触摸屏
- 7. 如何确定客户端是否是触摸设备
- 8. 有没有办法确定当前屏幕是否支持触摸?
- 9. 如何测试一个UIView是否被另一个UIView触碰?
- 10. UIView,如何确定触摸什么时候进入视图
- 11. 触摸UIView外
- 12. 如何确定用户是否触摸了工具栏项目?
- 13. Android:如何确定触摸事件是否在圈内?
- 14. 如何确定用户是否触摸画布中的椭圆?
- 15. 如何确定UIView是否已加载
- 16. UIView的触摸不被识别
- 17. 检查UIView是否被触动?
- 18. 确定ShareActionProvider是否被触发
- 19. 检测屏幕是否被触摸
- 20. 确定是否显示uiview
- 21. 取消当前UIScrollView触摸
- 22. 当前触摸位置
- 23. 如何在触摸UIButton时通过UIView检测触摸?
- 24. 按下触摸屏触发mousePressEvent,如何确定鼠标点击或触摸屏是否点击?
- 25. 当父UIView动画时,无法检测到UIView儿童触摸正确
- 26. 重叠UIView - 如何接收触摸?
- 27. UIView:如何专门限制触摸
- 28. 如何确定触摸哪个控件?
- 29. 如何检测是否有子节点被触摸:Sprite Kit
- 30. Android - 如何检查屏幕是否被触摸?
只是说明这并不完全正确。 isTouchInside和isTracking不是UIView的一部分。他们来自UIControl – ChickensDontClap 2012-12-15 17:54:35
你是完全正确的。我更新了我的答案。 – Tom 2013-12-08 18:32:33
isTracking也是UIScrollView的一部分 – phatmann 2018-01-19 19:20:38