如何使用 iOS 11 和 Swift 3 在 UINavigation Bar 的 Stack View 中为 UIButtons 启用点击手势
How do I enable tap gestures for UIButtons inside a Stack View in the UINavigation Bar with iOS 11 and Swift 3
我在 UINavigationBar
中的 UIStackView
中有 3 个 UIButton
。这些按钮充当标题,但是是 date/select 日期、下一个日期和上一个日期按钮。
每个按钮根据连接到 @IBAction
功能的 touchUpInside
事件执行不同的功能。一切都编码在 Swift 3.
他们的按钮一直在工作,直到 Xcode 和我的 iPhone 周末升级,所以他们 运行 在 iOS 11 上。现在按钮都冻结了,尽管如果我将它们从 Stack View 中取出(并将它们保留在 UINavigationBar
中),它们仍然可以工作。
知道如何解决这个问题吗?
谢谢!
iOS 11 以不同方式管理导航和工具栏的子视图。例如,我注意到在迁移和升级中,包含自定义视图(特别是那些自定义视图使用堆栈视图)的条形按钮项目是可见的,但包含的堆栈视图是零高度,这意味着触摸被忽略。
检查您如何为栏按钮项目创建自定义视图,并确保在运行时所有内容都具有非零帧。您可能需要添加更多约束。使用视图调试器并首先检查导航栏中所有内容的框架,以便确定要修改的内容。
我在 UINavigationBar
中的 UIStackView
中有 3 个 UIButton
。这些按钮充当标题,但是是 date/select 日期、下一个日期和上一个日期按钮。
每个按钮根据连接到 @IBAction
功能的 touchUpInside
事件执行不同的功能。一切都编码在 Swift 3.
他们的按钮一直在工作,直到 Xcode 和我的 iPhone 周末升级,所以他们 运行 在 iOS 11 上。现在按钮都冻结了,尽管如果我将它们从 Stack View 中取出(并将它们保留在 UINavigationBar
中),它们仍然可以工作。
知道如何解决这个问题吗?
谢谢!
iOS 11 以不同方式管理导航和工具栏的子视图。例如,我注意到在迁移和升级中,包含自定义视图(特别是那些自定义视图使用堆栈视图)的条形按钮项目是可见的,但包含的堆栈视图是零高度,这意味着触摸被忽略。
检查您如何为栏按钮项目创建自定义视图,并确保在运行时所有内容都具有非零帧。您可能需要添加更多约束。使用视图调试器并首先检查导航栏中所有内容的框架,以便确定要修改的内容。