gpt4 book ai didi

ios - 创建一个 UIView 捕捉点击,但对所有其他手势透明

转载 作者:可可西里 更新时间:2023-11-01 03:58:24 24 4
gpt4 key购买 nike

我想实现以下目标。

场景:当用户在特定文本字段中键入内容时,iOS 键盘出现在屏幕上。用户可以点击键盘和文本字段之外的任何地方来关闭键盘(无需激活任何可见的按钮)。此外,用户可以拖动到键盘之外,并观察在某些可 ScrollView 排列上的正常拖动行为。

从概念上讲,我在大部分屏幕上放置了一个“封面”UIView,其行为如下:

  1. 如果用户点击封面,我会捕捉到这次点击(这样我就可以,例如,关闭键盘)。这很容易通过拦截 UIView 子类中的触摸事件或使用点击手势识别器来实现。

  2. 如果用户在封面上拖动,则封面忽略转发这些触摸;这些被下面的层接收,就像它们没有覆盖物一样。

因此:用户应该能够滚动封面下方的内容,但不能点击封面下方的内容。在键盘和文本字段的“外部”点击应该会关闭键盘(和盖子),但不应激活任何东西。

我怎样才能做到这一点?

最佳答案

以通常的方式添加点击手势:

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
[self.view addGestureRecognizer:tapGesture];

但您可能正在寻找的是:

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}

文档说:当 gestureRecognizer 或 otherGestureRecognizer 对手势的识别会阻止其他手势识别器识别其手势时,将调用此方法。 ( https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIGestureRecognizerDelegate_Protocol/index.html#//apple_ref/occ/intf/UIGestureRecognizerDelegate )

这样,您可以确定它是完全透明的,并且没有任何东西会阻止您的识别器被调用。

关于ios - 创建一个 UIView 捕捉点击,但对所有其他手势透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13412906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com