【问题标题】:Issues with UI layout in macOS 10.10, working on macOS 10.12macOS 10.10 中的 UI 布局问题,适用于 macOS 10.12
【发布时间】:2018-03-09 12:16:41
【问题描述】:

我已将我的 macOS 应用程序提交到 App Store,但它被拒绝了。他们提供了屏幕截图,布局与我的开发机器完全不同。我在 2011 年底的 MacBook Pro 13" 上使用 Xcode 9 创建了该应用程序,没有视网膜屏幕,运行 MacOS 10.12。我询问了他们的环境,他们说他们使用 MacOS 10.10 进行了测试。

我想知道为什么会这样。我使用 Xcode 测试了我的应用程序,并将其导出并直接运行。我没有得到任何问题。这可能与自动布局有关吗?

我的背景是 iOS,所以也许我忘记了 Cocoa 平台更内在的东西。

这是 Xcode 上的屏幕,具有自动布局约束。

这是屏幕,在 xcode 之外运行。

这是苹果在审核过程中发来的截图

谢谢 =)

【问题讨论】:

    标签: xcode macos user-interface cocoa autolayout


    【解决方案1】:

    我从这个链接得到了答案:https://forums.developer.apple.com/message/265199#265199

    我做了一些额外的测试,只使用这个视图层次结构:

    View  
        - Vertical StackView  
            - Horizontal StackView  
                - Custom View  
           - Button  
    

    我也有限制:

    垂直堆栈视图 - 在屏幕上水平居中 - 锚点/边缘到顶部

    自定义视图 - 固定高度 - 固定宽度

    这足以重现问题。

    从调试代码中,我可以看到自定义视图的大小正确,水平 Stackview 的大小正确。只有垂直没有合适的尺寸。看起来 VerticalStackview 正在剪裁其内容。

    我设法通过以下方式使其工作: 1) 使用约束固定水平 StackView 的高度 2) 更改水平 StackView 上的拥抱优先级 3) 改变水平 StackView 的剪切阻力

    似乎出于某种原因,在 macOS 10.10 上,堆栈视图或自动布局无法以相同的方式工作。似乎内容没有以相同的方式计算。通过在每个子视图中强制约束,我让它工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多