故事板上的 Xcode 9 和 9.1 选择的设备会影响部署设备上的视图宽度

Posted

技术标签:

【中文标题】故事板上的 Xcode 9 和 9.1 选择的设备会影响部署设备上的视图宽度【英文标题】:Xcode 9 & 9.1 selected device on storyboard affect view width on deployment device 【发布时间】:2018-03-12 23:33:04 【问题描述】:

我注意到 Xcode 9 有一些很奇怪的地方。当我在我的主故事板上并更改选择的设备以查看适当格式的视图控制器时,我注意到 viewDidLoad 上我的 tableview 的宽度是如果情节提要上的选定设备与我部署的设备不同,则错误。我已经进行了测试,似乎故事板上所选设备的布局已被采用。

有人遇到过这个问题吗?

Xcode 9.1 测试版也存在此问题

【问题讨论】:

我也有同样的问题,Apple 拒绝了我的应用程序 您的问题得到答案了吗? 我遇到了同样的问题。每次部署前需要不同的屏幕尺寸时,我都必须更改故事板尺寸。 你好弗朗索瓦,你有解决这个问题的办法吗?我面临同样的问题。任何帮助都将帮助我更进一步。 你好,很遗憾我暂时没有解决这个问题的办法。 【参考方案1】:

我在尝试将蒙版应用到我的视图层以圆化 UITableViewCell 内的角时发现了同样的问题。 This answer 为我做了诀窍。

在 layoutSubviews() 中,在运行时需要真实尺寸的任何视图上调用 layoutIfNeeded()。对于我的用法,它看起来像这样:

override func layoutSubviews() 
    super.layoutSubviews()

    print("cardView frame: \(cardView.frame)") // Storyboard size
    cardView.layoutIfNeeded()
    print("cardView frame: \(cardView.frame)") // Runtime device size
    // Perform your layout here. 

我希望这会有所帮助!

【讨论】:

感谢您的回答 JGHof 但这对我不起作用。目前我没有解决这个问题。

以上是关于故事板上的 Xcode 9 和 9.1 选择的设备会影响部署设备上的视图宽度的主要内容,如果未能解决你的问题,请参考以下文章

将图像限制在 Xcode 故事板上的屏幕边缘

如何从 xcode 故事板上的导航控制器导航回来

将设备更新到 iOS 11.2 会中断对 Xcode 9.1 的支持

无法将 ios 9.1 设​​备连接到 xcode 7.1

在 iOS 11 和 Xcode 9.1 中未调用 CLLocationManager 的 didUpdateLocations 委托 [重复]

Xcode 7.1 iOS 9.1 模拟器透明