xcode - macOS 10.10 中的 UI 布局问题(适用于 macOS 10.12)

标签 xcode macos user-interface cocoa autolayout

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

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

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

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

这是在 xcode 外部运行的屏幕。 02

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

谢谢=)

最佳答案

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

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

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

我也有限制:

垂直堆栈 View - 屏幕水平居中 - 锚定/页边距顶部

自定义 View - 固定高度 - 固定宽度

这足以重现该问题。

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

我设法让它工作: 1) 固定Horizo​​ntal StackView的高度并进行约束 2) 更改 Horizo​​ntal StackView 上的拥抱优先级 3) 更改 Horizo​​ntal StackView 上的裁剪阻力

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

关于xcode - macOS 10.10 中的 UI 布局问题(适用于 macOS 10.12),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46457528/

相关文章:

ios - 如何组织tableview单元格

swift - 在用户输入的另一个键中创建一个包含键和值的字典

ios - 打字时搜索栏消失

ios - NSInvalidArgumentException -[NSNull 长度] : unrecognized selector sent to instance

java - 从 Mountain Lion 中删除 Java 7

macos - 在 Swift 中有条件地在 TableView 中显示 ImageView

mysql - 在 macOS 上冲泡安装 mysql

user-interface - Hashicorp Vault UI - 无法在 'integrity' 属性中找到有效的摘要...资源已被阻止

java - JTextAreas在JDialog中是不可见的,我添加了setVisible函数,还是不行

matlab - Matlab GUI 中带有 slider 的 WindowScrollWheelFcn