【问题标题】:Three UIButton inside a vertical stack view. Click first button also triggers the last button垂直堆栈视图内的三个 UIButton。单击第一个按钮也会触发最后一个按钮
【发布时间】:2020-03-11 19:39:02
【问题描述】:

这是一个描述问题的示例项目:

https://github.com/nuynait/UIStackView-UIButton-Bug

这是一个一分钟的创建错误的视频:Click here

重现此问题:

  1. 创建一个新的单一应用项目
  2. 点击故事板
  3. 添加垂直堆栈视图
  4. 将堆栈视图的顶部、底部、前导、尾随约束添加到其父级。
  5. 设置垂直堆栈视图以均匀填充(这是一个可选步骤)
  6. 在堆栈视图中添加一个按钮
  7. 在堆栈视图中添加另一个按钮
  8. 在堆栈视图中添加第三个按钮(这也是可选步骤)
  9. 在模拟器中运行应用程序。
  10. 单击第一个按钮。

预期行为:按下第一个按钮时,只有第一个按钮应突出显示。

实际行为:仅在按下第一个按钮时,第一个和第三个按钮全部突出显示。

更新:我正在使用 Xcode 11.3 (11C29),iPhone 8 模拟器 (iOS 13.3)

【问题讨论】:

  • 嗯...抓住了您的 GitHub 存储库...还按照您的视频从头开始创建...我确实 看到相同你得到的东西。正如预期的那样,每个按钮都独立突出显示。我正在使用 Xcode 11.2.1 并在 iPhone 8 / iOS 13.2.2 模拟器和 iPhone XR / iOS 13.3.1 上运行它
  • @DonMag 感谢您为我检查。在知道对你有好处后,我尝试重新启动Xcode,模拟器并重新启动计算机,此问题不再存在。

标签: ios uibutton uistackview


【解决方案1】:

这个问题不再发生在我身上。如果您也遇到此问题:

试试看是否修复:

  1. 重启 Xcode
  2. 重启模拟器
  3. 重启电脑
  4. 尝试在真实设备上运行它。
  5. 尽可能更新 Xcode 版本。

旧答案:

我猜这是来自 Apple 的错误。我已向 Apple 提交了错误报告。目前,如果您遇到此问题并想要一个临时解决方案,我的解决方案是在 StackView 下方添加一个 UIView 1px 高度。在这种情况下,当您单击第一个按钮时,它将不会触发最后一个按钮。

请注意,假视图必须是可见的,并且高度至少为 1 个像素。不能将其设置为隐藏或 alpha 上的 0。

【讨论】:

    猜你喜欢
    • 2020-08-11
    • 2023-03-22
    • 2018-12-04
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2018-02-01
    • 2016-11-12
    相关资源
    最近更新 更多