- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 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/
感觉代码越少越好,所以想“优化”如何同时启用多个项目: button1.enabled = YES; button2.enabled = YES; textField.enabled = YES; .
我正在尝试禁用和禁用存储在 List 中的 Component。当我尝试这样做时,出现以下错误: 'Component' does not contain a definition for 'enab
我正在努力使用执行器启用 Spring Boot 运行状况检查。由于我们的应用程序依赖于 Spring 1.5.21,因此我必须使用执行器 1.5.21 版本。我在他们的online document
我有一个项目结构如下:.Persistence -> .Repo -> .Services -> .Controllers -> MVC3 App。 每一层都有一个带有接口(interface)的相应
解决方法: 在cmakelists.txt中添加设置: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fms-extensions") 问题解决 下面是cmakel
我对 powershell 知之甚少。 我想知道是否有人可以指出我需要了解什么来解释以下内容: PS C:\Users\username> (Get-Aduser -Filter 'Enabled -
我有一个运行 Ubuntu 16.04.1x64 的 DO droplet,我正在尝试运行 IPFS作为系统服务。我已经按照说明创建了一个用户“connor”并安装了 IPFS here .我将服务存
我尝试制作 Android WebRTC 应用 我在 Android Oreo 和 Pie 上测试过,该应用运行良好。 但是在 Android Lollipop 和 Marshmallow 上,当我调
我有一个简单的网站,其中一个 aspx 页面 ( Test.aspx ) 显示 Roles.Enabled在 Web.config 中设置为 false 的值(属性 roleManager@enabl
在 Spring Boot 中,对于分段上传,我看到许多教程站点都建议具有以下属性之一:spring.http.multipart.enabled=false或者spring.servlet.mult
我有一个 PHP 库,它使用许多正则表达式,其中包括用于多字节字符串的 \P 表达式,例如 ((((?:\P{M}\p{M}*)+?)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?
如果“错误运行应用程序:Instant Run 需要启用'工具 | Android | 启用 ADB 集成'。” 使用最新的 Gradle 插件和最新的 Android SDK 时出现问题。您可以使用
在尝试了一些选项后,我仍然没有得到满意的结果: 使用的Javascript库是FullpageJS ( http://alvarotrigo.com/fullPage/ ) Fullpage.js 使
默认情况下,Kafka Consumer 会定期提交当前偏移量,除非通过禁用 enable.auto.commit 将其关闭。 .根据文档,您将负责自己提交偏移量。所以当我想要 手册 控制,这似乎是要
我有一个 AWS SAM 应用程序,其函数包含 schedule 事件,并且我希望有条件地启用/禁用根据参数值为事件生成的 EventBridge 规则。 为此,我在 template.yaml 中执
似乎 servlet 的 web.xml 有一个元素叫做 false 可以像这样放在servelt定义中 example com.example.TestServlet 10
我们有 Aerospike 服务器版本 3.8.3(支持 LDT) 我们遇到以下异常 - 2018-08-01 16:11:31,558 1320573 [task-scheduler-3] ERRO
我有一个运行 Windows 10 Pro 的 Windows VM,我正在尝试安装运行 WSL2 的 Docker。 但是,我遇到了下面的错误,我可以确认 虚拟机平台 Windows 功能 已经启用
我开始学习 Javafx,并且偶然发现了这个“奇怪”的功能。我制作了一个带有两个按钮的简单窗口。当我按下其中一个按钮时,会出现一条蓝色笔画并一直保留在那里,直到我按下另一个按钮。除了知道最后按下的是哪
我在使用 C++ 模板时遇到了这段使用 SFINAE 使用 std::enable_if 的代码.这段代码我面临两个问题。 #include #include enum class Type :
我是一名优秀的程序员,十分优秀!