如果将 UIView 添加为子视图,则 UIButton 目标不起作用

2024-01-12

我有一个UIButton。它有两个子视图。然后我打电话:

[createButton addTarget:self action:@selector(openComposer) forControlEvents:UIControlEventTouchUpInside];

如果我点击UIButton未涵盖但其子视图之一,它工作正常。但是,如果我点击其中一个子视图,它不会触发该操作。

在两个子视图上,我都有.userInteractionEnabled set to YES.

两个子视图都是普通的UIViews与一个frame and backgroundColor.

如何让水龙头“通过”UIView并到UIButton?

Thanks

EDIT:我需要使用 UIControlEvents 因为我需要 UIControlEventTouchDown。

EDIT 2:

这是按钮的代码。

@interface CreateButton ()

@property (nonatomic) Theme *theme;
@property (nonatomic) UIView *verticle;
@property (nonatomic) UIView *horizontal;
@property (nonatomic) BOOL mini;

@end

@implementation CreateButton

#pragma mark - Accessors

- (UIView *)verticle {
    if (! _verticle) {
        _verticle = [[UIView alloc] init];
        _verticle.backgroundColor = [self.theme colorForKey:@"createButtonPlusBackgroundColor"];
        _verticle.userInteractionEnabled = NO;
    }
    return _verticle;
}

- (UIView *)horizontal {
    if (! _horizontal) {
        _horizontal = [[UIView alloc] init];
        _horizontal.backgroundColor = [self.theme colorForKey:@"createButtonPlusBackgroundColor"];
        _verticle.userInteractionEnabled = NO;
    }
    return _horizontal;
}

#pragma mark - Init

- (instancetype)initWithTheme:(Theme *)theme frame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        _theme = theme;

        self.layer.cornerRadius = roundf(frame.size.width / 2);
        self.layer.shadowColor = [UIColor blackColor].CGColor;
        self.layer.shadowOpacity = .1f;
        self.layer.shadowOffset = CGSizeZero;
        self.layer.shadowRadius = 15.f;
        self.backgroundColor = [self.theme colorForKey:@"createButtonBackgroundColor"];

        [self addSubview:self.verticle];
        [self addSubview:self.horizontal];

        [self addTarget:self action:@selector(animate) forControlEvents:UIControlEventTouchDown];
        [self addTarget:self action:@selector(animate) forControlEvents:UIControlEventTouchUpInside];
        [self addTarget:self action:@selector(animate) forControlEvents:UIControlEventTouchUpOutside];
    }
    return self;
}

#pragma mark - Actions

- (void)animate {
    [UIView animateWithDuration:0.2 delay:0 usingSpringWithDamping:0.4 initialSpringVelocity:8 options:kNilOptions animations:^{
        if (self.mini) {
            self.transform = CGAffineTransformMakeScale(1.0, 1.0);
            self.mini = NO;
        } else {
            self.transform = CGAffineTransformMakeScale(0.90, 0.90);
            self.mini = YES;
        }
    } completion:nil];
}

#pragma mark - UIView

- (void)layoutSubviews {
    CGSize size = self.bounds.size;

    NSInteger width = 3;
    NSInteger verticleInset = 12;
    self.verticle.frame = CGRectMake((size.width - width) / 2, verticleInset, width, size.height - (verticleInset * 2));
    self.horizontal.frame = CGRectMake(verticleInset, (size.height - width) / 2, size.width - (verticleInset * 2), width);
}

@end

Set userInteractionEnabled to NO让您的子视图让触摸通过它们并到达您的按钮。

还要确保改变_verticle.userInteractionEnabled = NO;在你的惰性加载器中horizontal财产给_horizontal.userInteractionEnabled = NO;因为我相信这是一个错字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果将 UIView 添加为子视图,则 UIButton 目标不起作用 的相关文章

  • 当聚焦非 UILabel titleView 时,VoiceOver 会读取辅助功能标签两次

    我在使用 VoiceOver 时遇到了一个奇怪的问题 Goals Set a UIStackView含有多个UILabel就如我的navigationItem titleView 将堆栈视图标记为辅助功能元素并设置其accessibilit
  • Objective-C 原始数之间的差异

    What is the difference between objective c C primitive numbers I know what they are and how to use them somewhat but I m
  • 在 iPad 上显示 PDF 文档 - 颜色问题

    我为 iPad 构建了一个 PDF 阅读器 在将预览中的文档与模拟器和设备进行并排比较时 我注意到一些颜色问题 最好的形容就是颜色变得更加浓郁 近距离使用的相似颜色之间的任何差异都会变得更加明显 而所有颜色总体上看起来都更亮 尽管大肆宣传将
  • 如何将 NSString 值 @"3.45" 转换为浮点数?

    如何将 NSString 值 3 45 转换为浮点数 3 45 float fCost NSDecimalNumber decimalNumberWithString 3 45 floatValue NSString val 3 45 fl
  • Python for ios解释器[重复]

    这个问题在这里已经有答案了 可能的重复 iOS 上的 Python 或 Ruby 解释器 https stackoverflow com questions 4772591 python or ruby interpreter on ios
  • 管理一堆具有依赖关系的 NSOperation

    我正在开发一个创建内容并将其发送到现有后端的应用程序 内容是标题 图片和位置 没有什么花哨 后端有点复杂 所以这是我必须做的 让用户拍照 输入标题并授权地图使用其位置 为帖子生成唯一标识符 在后台创建帖子 上传图片 刷新用户界面 我使用了几
  • SKAudioNode 崩溃:AVAudioPlayerNode.mm:333:开始:所需条件为 false:_engine->IsRunning()

    我有一个简单的 SKAudioNode let backgroundSound SKAudioNode fileNamed backgroundSound mp3 我用来玩backgroundSound runAction SKAction
  • IBOutlet、实例变量和属性:最佳实践

    今天 我对有关声明 IBOutlet 和实例变量 管理它们 使用正确的访问器以及正确释放它们的最佳实践进行了各种研究 我已经差不多了 但我有一些小问题 我希望有人能够就最佳实践提出建议 我会将它们格式化为代码并注释问题 以便更容易理解 我排
  • 如何在 IOS safari 上禁用缓存?

    有没有办法禁用 ipad iphone 上的缓存 我想针对非缓存体验运行一些自动化测试 我刚刚偶然发现了一种在 iOS 上禁用 Safari 缓存的方法 iOS Open Settings 导航Safari gt 高级 Enable 网页检
  • 依赖于 pod 的 Swift 通用框架

    我正在开发一个依赖于 Alamofire 的小型 Swift 框架 我将它用作属于同一工作区的应用程序的嵌入式框架 并且它运行良好 当我想构建一个具有总体目标的通用框架时 问题就出现了 然后 当执行脚本生成框架时 它失败并显示消息No su
  • NSView 鼠标跟踪

    我在 Mac OS X 上遇到了 Cocoa NSView 的奇怪行为 我在 NSView 容器中有一个自定义 NSView 这个自定义 NSView 跟踪鼠标移动 点击 并有一个工具提示 当我在所描述的视图上方添加 NSView 时 即使
  • 快速检查网络速度

    我想从我的 swift 应用程序检查网络速度 我发现很多帖子描述了Reachability特别是查找连接是否可达以及是 WIFI 连接还是 WWAN 连接的方法 我的问题 是否可以检测 WWAN 的类型 2G 3G 4G 你可以用以下命令检
  • Xcode 12.3:为 iOS 模拟器构建,但链接和嵌入框架是为 iOS + iOS 模拟器构建的 [重复]

    这个问题在这里已经有答案了 我有一个使用链接和嵌入式自定义框架的应用程序 该应用程序在 Xcode 12 2 之前都可以为 iOS 设备和模拟器正确构建 然而 从 Xcode 12 3 开始 我收到以下错误 为 iOS 模拟器构建 但链接和
  • 有没有办法在iOS模拟器上使用苹果的Touch ID(指纹扫描仪)?

    我正在开发一个需要 Touch ID 身份验证的应用程序 那么有什么方法可以在模拟器中使用 Touch ID 指纹扫描仪 另外 请分享一些使用 LocalAuthentication 框架的示例代码 XCODE 7 beta支持在iPhon
  • Xcode 9.2 的正确应用程序图标 (appicon) 命名约定是什么?

    我从以下网站下载了一组 23 个 iOS 应用程序图标https makeappicon com https makeappicon com具有以下文件名 email protected cdn cgi l email protection
  • 如何在UiView中添加UIImagePickerController

    如何在TabBarApplication中的UiView中添加UIImagePickerController 无论您是否在选项卡中 此代码都会进入您视图的 ViewController 类 当您需要时创建一个选择器 UIImagePicke
  • 理解 Objective-C 中选择器的唯一性

    我无法理解 选择器 的部分功能 如苹果指南中所述 我把我感到困惑的部分加粗了 在 Objective C 中 选择器有两个含义 可以用来参考 当在源代码消息中使用方法时 只需使用方法的名称 到一个物体 不过 它也指的是唯一标识符 编译源代码
  • 渐变方向从左到右

    我完全被这个问题难住了 它应该如此简单 以至于让我发疯 我正在使用这个苹果反射教程 苹果反射示例 http developer apple com library ios samplecode Reflection Listings MyV
  • SwiftUI:如何让项目的拖放重新排序起作用?

    我有以下 SwiftUI 视图 struct ContentView View State var model Model var body some View ScrollView LazyVGrid columns columns sp
  • 将 .p12 证书存储在钥匙串中以供稍后使用

    我正在尝试按照 Apple 文档处理此处的客户端 p12 证书 https developer apple com library ios documentation Security Conceptual CertKeyTrustProg

随机推荐

  • XAMPP 或 WAMP 服务器与 IIS 之间有什么区别?

    我想知道 XAMPP 或 WAMP 服务器与 IIS 服务器之间的主要区别是什么 WAMP 是 的缩写W窗口 操作系统 Apache 网络服务器 MmySQL 数据库 PHP 语言 XAMPP 和 WampServer 都是 WAMP 的免
  • Ionic 4 Ios 构建出现黑屏

    我正进入 状态Failed to load resource The requested URL was not found on this server 在 iOS 模拟和设备中运行应用程序时出错 在 Android 中运行正常 I ha
  • Firestore 通过数组的字段值进行查询

    我正在尝试运行一个简单的查询 在其中搜索包含对象数组内的值的文档 例如 看看我的数据库结构 我想运行与此类似的查询 db collection identites where partyMembers array contains name
  • 向 Objective-C 添加“forCount”控制结构的最佳方法?

    Adam Ko 为这个问题提供了一个很好的解决方案 感谢 Adam Ko 顺便说一句 如果您像我一样喜欢 c 预处理器 处理 defines 的东西 您可能不知道 XCode 中有一个方便的东西 右键单击您的一个开源文件的主体 然后向下靠近
  • Vertex AI - 部署的模型预测与评估结果的预测不同

    我使用 AutoML 训练了一个多标签文本分类模型 然后 我部署了模型并尝试测试我们在模型注册表的评估选项卡中提供的一些输入 我遇到的问题是 我通过两种测试方法获得的预测输出值与模型注册表的评估选项卡中显示的输出值不匹配 我已经包含了一个此
  • 使用 LINQ 在 ASP.NET MVC 中传递数据 - 疯狂

    首先请允许我说 我是 ASP NET MVC 方面的高手 我喜欢它 但我是个n00b 我正在尝试从 LINQ 查询传回 复杂 数据 我了解如何使用数据上下文 然后在发送回数据时强制转换该数据 但是当我执行返回匿名类型的更复杂的 LINQ 查
  • 关于 PermissionEx (WIX) 的问题

    我是 WIX 新手 我正在使用 util PermissionEx 创建 ACL 我可以成功设置读 写 读和执行等权限 但找不到有关设置修改权限的任何信息 我尝试使用 Append 属性来实现此功能 这似乎是唯一可以实现所需功能的属性 但是
  • CSS 转换导致 div 在 Safari 中重叠?

    为什么transform rotateY 导致 div 仅在 Safari 中重叠 以下是一些屏幕截图 可以更好地解释 它应该是什么样子 它不应该是什么样子 仅出现在 Safari 中 这是非常奇怪的行为 我已经删除了transform r
  • Discord.py on_member_join 没有响应

    我正在使用一个 client event为我的功能on member join事件 我希望它在用户加入时发送消息 但是控制台没有响应或错误 这是我当前尝试的代码 client event async def on member join m
  • Java 中的 String[] args 有什么意义?

    每当您在类中声明 main 方法时 您总是必须执行String名为 args 的数组 重点是什么 除非我生活在岩石下 否则 Java 中的命令行参数几乎不再使用 当我尝试运行这个时 this program won t compile pu
  • C# 给定货币代码格式化货币(如 USD / GBP / FRF)

    我正在与返回货币的数据库集成 System Decimal 和货币代码 货币代码是类似的字符串 USD GBP 乃至 FRF mscorlib 是否有内置的东西可以帮助我格式化这些货币 我首先想到的是在数据库货币代码和CultureInfo
  • 使用 vscode 作为 sops 的编辑器

    我似乎无法得到sops跟 共事Visual Studio Code作为其编辑 vscode已经在PATH 然而 sops在控制台上打印解密的内容 而不是打开编辑器 c gt code this opens the Visual Studio
  • Node.js 子进程问题与参数 - 引号问题?,FFMPEG 问题?

    我需要能够从 Node js 应用程序执行 FFMPEG 我相信这个问题可能与正确指定命令行参数有关 而不是特定于 FFMPEG 但由于我无法缩小问题范围 所以我提出了我的整个问题 我可以执行以下命令从命令提示符成功 C Brad ffmp
  • 如何在 LaTeX 中对段落进行编号?

    给出一堆段落 Para A Para B Para C 如何让 LaTeX 自动对它们进行编号 即 1 Para A 2 Para B 3 Para C 我看过以下建议 newcounter parnum newcommand N noin
  • python 日志文件中的“无”

    我正在使用loggingpython 中的模块 当我在命令行上使用错误的参数调用脚本时 日志文件在某些 时候包含单个单词 None 我不知道它来自哪里 这是我的代码切割 我在其中执行logging exception Show script
  • 有时不会调用 UISplitViewControllerDelegate 中的 willHideViewController

    我有个问题 我的应用程序是一个选项卡栏控制器 它的第一个视图控制器是一个分割视图控制器 这对苹果来说似乎不太好 因为文件说分割的 voew 控制器必须是根 所以也许这就是我的问题的原因 问题是 有时 不会调用 UISplitViewCont
  • 如何在 Kendo 网格中自动启用或禁用滚动条?

    这是我创建网格的代码 if Model GenericEntityList Count gt 0 Html Kendo Grid Model GenericEntityList Name screenNames ToString Colum
  • python 中 select 的 CPU 使用率达到 100%

    我在 python 中的 select 有问题 我有一段代码允许客户端从服务器接收数据 并通过在 stdin 上读取并在服务器套接字上写入来发送数据 readfds s sys stdin writefds s sys stdout my
  • 了解 JMH 输出

    因此 我对几种方法运行了 JMH 基准测试 并得到了如下响应 我无法理解到底是什么Score and Error值表示 有相同的参考文档吗 举个例子 ss stream带参数n 100000花了约 平均运行 30 次迭代需要 1 363 微
  • 如果将 UIView 添加为子视图,则 UIButton 目标不起作用

    我有一个UIButton 它有两个子视图 然后我打电话 createButton addTarget self action selector openComposer forControlEvents UIControlEventTouc