gpt4 book ai didi

ios - UIView 中的 UIButton 在另外两个 UIView 后面对上面的 View 的触摸使用react

转载 作者:行者123 更新时间:2023-11-29 03:33:06 25 4
gpt4 key购买 nike

我在过去几周玩弄了后端内容和 Objective-C 之后才开始学习 iOS GUI。我偶然发现了一个我设法解决的棘手情况,但我想知道是否有更好的方法来解决它。

这是我对 UIView 进行分层的方式:

[self.view.layer insertSublayer:_topView.layer above:self.view.layer];
[self.view.layer insertSublayer:_bottomView.layer above:self.view.layer];

所以我有“基本” View 和一个 ViewController。在这个 View 中,我有两个 subview :topView 和 bottomView。我已经能够像我想要的那样操纵这些 View 的来源,但即使它们在我的 UIButton 前面,它也会对触摸使用react。

我通过检查其中一个 subview (哪个并不重要)的原点的 y 轴来解决这个问题,以确保显示按钮并激活它(或者启用用户交互)。

if (_topView.frame.origin.y == 0) {
self.refreshButton.userInteractionEnabled = NO;
} else {
self.refreshButton.userInteractionEnabled = YES;
}

我个人不喜欢这个解决方案,想知道解决这个问题的更好方法是什么。

任何人都可以指出正确的方向,以便我可以在没有丑陋的黑客攻击的情况下开展这一层业务吗?

我在 Xcode 5.0 中使用 Storyboard。

干杯!

最佳答案

插入子层根本不会影响触摸转发。 View 的 subview (在您的情况下是按钮)只能通过在其上添加 subview 来“覆盖”。如果您没有特殊原因使用 CALayer,那么只需添加 subview ,然后它就会以正确的方式处理触摸。像这样:

[self.view insertSubview:_topView aboveSubview:self.refreshButton];
[self.view insertSubview:_bottomView aboveSubview:self.refreshButton];

关于ios - UIView 中的 UIButton 在另外两个 UIView 后面对上面的 View 的触摸使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19518598/

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