Есть ли способ, которым я могу запросить UIView, чтобы определить, будет ли он в данный момент касаться? Причина, о которой я прошу, заключается в том, что я использую «touchedBegan», «touchesEnded» и «touchhesMoved», чтобы держать 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. Как определить, какой процесс работает в данный момент?
- 3. Как определить, какой псевдокласс в данный момент используется?
- 4. Как определить, какой фрагмент используется в данный момент
- 5. Проверьте, не касается ли UIView?
- 6. V8 потокобезопасен на данный момент?
- 7. Вероятно, заканчивается в данный момент
- 8. Как остановить исполняемой в данный момент команду
- 9. Как определить, является ли данный URL текущей?
- 10. Возможно ли в wxwidgets определить, видно ли в данный момент окно?
- 11. Как проверить, отображает ли Windows в данный момент курсор?
- 12. Как проверить, отображается ли NSView в данный момент?
- 13. Как проверить, перетаскивается ли элемент в данный момент
- 14. Как узнать, есть ли в данный момент экземпляр активности?
- 15. Как узнать, отображается ли в данный момент мой элемент Polymer
- 16. Как проверить, перетаскивается ли элемент в данный момент
- 17. Как проверить, работает ли поток в данный момент?
- 18. Asp.Net MVC: как определить, находитесь ли вы в данный момент в определенном виде?
- 19. SQL: текст на данный момент
- 20. Использование jQuery, как определить, находится ли элемент в данный момент «зависает»
- 21. jQuery - Как определить, находится ли элемент в данный момент за пределами области просмотра?
- 22. Преобразование числа на данный момент
- 23. : было неожиданным на данный момент
- 24. определить, отображается ли uiview
- 25. Как определить, является ли данный объект маской
- 26. Что касается UIView
- 27. Время назад в данный момент js
- 28. Получить тег отображаемого в данный момент фрагмента
- 29. Проверить, есть ли в данный момент пользователь (в прямом эфире)
- 30. Heroku: в данный момент происходит передача мошенника
Просто отметьте, что это не совсем правильно. isTouchInside и isTracking не являются частью UIView. Они из UIControl – ChickensDontClap
Вы совершенно правы. Я обновил свой ответ. – Tom
isTracking также является частью UIScrollView – phatmann