Программируем под IOS
-
Anonymous
Как позволить uiView обращаться с жестом для TAP, а затем позвольте жесту TAP пройти вниз к Uiview под iOS15+ с помощью
Сообщение
Anonymous »
Документация говорит ... Установите: < /p>
Код: Выделить всё
recognizer.cancelsTouchesInVew = NO;
< /code>
и добавить распознаватель в топ.UIView *custom_overlay_1 = [[UIView alloc] initWithFrame : given_frame];
UIView *custom_overlay_2 = [[UIView alloc] initWithFrame : given_frame];
UITapGestureRecognizer *custom_recognizer_1, *custom_recognizer_2;
custom_recognizer_1 = [[UITapGestureRecognizer alloc]
initWithTarget : self
action :@selector(handle_tap_1:)];
custom_recognizer_2 = [[UITapGestureRecognizer alloc]
initWithTarget : self
action :@selector(handle_tap_2:)];
[custom_recognizer_1 setCancelsTouchesInView: NO];
[custom_recognizer_2 setCancelsTouchesInView: NO];
[custom_overlay_1 addGestureRecognizer: custom_recognizer_1];
[custom_overlay_2 addGestureRecognizer: custom_recognizer_2];
[self.view addSubview custom_overlay_2];
[self.view addSubview custom_overlay_1];
- (int) handle_tap_1 : (UITapGestureRecognizer *) gesture
{
NSLog(@" *** *** handle_tap_1 !!!");
if (gesture.state == UIGestureRecognizerStateRecognized)
NSLog(@" *** *** recognized tap detected in handle_tap_1 !!!");
return (0);
}
- (int) handle_tap_2 : (UITapGestureRecognizer *) gesture
{
NSLog(@" *** *** handle_tap_2 !!!");
if (gesture.state == UIGestureRecognizerStateRecognized)
NSLog(@" *** *** recognized tap detected in handle_tap_2 !!!");
return (0);
}
Проблема custom_layer_1 может поймать жест Tap, но custom_layer_2 не.
Подробнее здесь:
https://stackoverflow.com/questions/797 ... ss-down-to
1753175962
Anonymous
Документация говорит ... Установите: < /p>
[code]recognizer.cancelsTouchesInVew = NO;
< /code>
и добавить распознаватель в топ.UIView *custom_overlay_1 = [[UIView alloc] initWithFrame : given_frame];
UIView *custom_overlay_2 = [[UIView alloc] initWithFrame : given_frame];
UITapGestureRecognizer *custom_recognizer_1, *custom_recognizer_2;
custom_recognizer_1 = [[UITapGestureRecognizer alloc]
initWithTarget : self
action :@selector(handle_tap_1:)];
custom_recognizer_2 = [[UITapGestureRecognizer alloc]
initWithTarget : self
action :@selector(handle_tap_2:)];
[custom_recognizer_1 setCancelsTouchesInView: NO];
[custom_recognizer_2 setCancelsTouchesInView: NO];
[custom_overlay_1 addGestureRecognizer: custom_recognizer_1];
[custom_overlay_2 addGestureRecognizer: custom_recognizer_2];
[self.view addSubview custom_overlay_2];
[self.view addSubview custom_overlay_1];
- (int) handle_tap_1 : (UITapGestureRecognizer *) gesture
{
NSLog(@" *** *** handle_tap_1 !!!");
if (gesture.state == UIGestureRecognizerStateRecognized)
NSLog(@" *** *** recognized tap detected in handle_tap_1 !!!");
return (0);
}
- (int) handle_tap_2 : (UITapGestureRecognizer *) gesture
{
NSLog(@" *** *** handle_tap_2 !!!");
if (gesture.state == UIGestureRecognizerStateRecognized)
NSLog(@" *** *** recognized tap detected in handle_tap_2 !!!");
return (0);
}
[/code]
Проблема custom_layer_1 может поймать жест Tap, но custom_layer_2 не.
Подробнее здесь: [url]https://stackoverflow.com/questions/79709970/how-to-let-an-uiview-handles-a-tap-gesture-then-let-the-tap-gesture-pass-down-to[/url]