gpt4 book ai didi

iPhone UIView :Is it possible to enable userinteraction only on subviews?

转载 作者:行者123 更新时间:2023-12-03 21:23:25 27 4
gpt4 key购买 nike

我创建了一个 View Controller ,它显示一个用于将 View 滑动到屏幕上的按钮。这个想法是在屏幕上放置三个这样的 View Controller ,从而在屏幕底部产生三个提供导航的按钮。

View Controller 堆叠在一起,因此顶部的 Controller 现在覆盖其他 View ,从而覆盖其他按钮。在这种情况下,只有顶部 View Controller 的按钮可以工作,我希望这三个按钮都可以单击。我尝试在 View 上禁用用户交互并仅在按钮上启用它,但看起来 super View 设置覆盖了 subview 设置。

有什么想法吗?

最佳答案

您似乎混淆了 View 及其 Controller :viewController 不是堆叠的,它们只是 nib 或 xib 文件的一部分。另一方面, View 可能是 View 层次结构的一部分,并且在这个意义上可以相互覆盖。 viewController 的功能是管理和协调屏幕上的各种 View 。使用 View Controller 来管理单个按钮效率不高: Controller 的目的是促进各个按钮之间的通信(例如,当触摸数字 3 时禁用按钮 1,2 和 4)。 @bpapa 关于 Apple 不鼓励使用多个 viewController 的说法不再正确。当前部分Windows, Views, and View Controllers iOs 应用程序编程指南中指出:

The view controller manages a single top-level view directly and may manage all or some of that view’s subviews. For simple user interfaces, a view controller typically manages all of the views in its view hierarchy. However, for more complex interfaces comprised of several distinct pieces, a view controller may manage a subset of views and rely on one or more custom controller objects to manage other groups of views in the view hierarchy.

有一件事在文档中没有明确说明,但在过去几周里多次困扰着我,那就是,将 viewController 作为 UIControl 操作的目标在该 viewController 是 UIControl 的情况下才有效。 Nib 的文件所有者。举例来说,假设您有一个带有两个 View Controller (gameViewController 和 ScoreViewController)的 Nib 。 gameView 可能包含多个充当游戏 block 的按钮,触摸它们会向 gameViewController 的 -(void)pieceHasBeenTouched:(id)sender 方法发送一条操作消息。如果 gameViewController 是文件的所有者,那么这非常有用。

如果你在scoreView中有一个按钮让它向scoreViewController发送消息,比如说saveScore或类似的东西,现在看起来似乎是合乎逻辑的。由于我还不太清楚的原因,响应者链不会让你这样做。您需要使分数 View 中的“保存”按钮将其操作消息发送到 gameViewController。

我通过在两个 Controller 之间建立 IBOutlet 绑定(bind)来解决这个问题——通知是另一种可能性。

关于iPhone UIView :Is it possible to enable userinteraction only on subviews?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744209/

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