【问题标题】:XCode Simulator and Actual Device shows Different UIXCode 模拟器和实际设备显示不同的 UI
【发布时间】:2018-09-06 20:59:18
【问题描述】:

我遇到了一个问题,希望您能帮助我!事实证明,我第一次遇到一个问题,即我的实际 iPhoneX 设备的 UI 看起来与我的 XCode 模拟器的不同。下图是这样的:

Left is the actual device, and Right is the simulator

一个金色边框的盒子是这个问题的唯一受害者。我已经尝试重新启动计算机和手机,并且我还将手机和 XCode 更新到了最新可用的版本。与 iPhone 6 类似的问题。我已将问题 UIImageView 的代码称为 searchBack。它的大小取决于设备的显示大小,iPhone 和 iPad 的位置不同:

searchBack = UIImageView(frame:CGRect(x:0, y:0, width: displayWidth*0.9, height: displayHeight*0.1))
if UIDevice.current.model.range(of: "iPad") != nil {
    self.searchBack.center = CGPoint(x: self.displayWidth*0.5, y: self.displayHeight*0.255)
} else {
    self.searchBack.center = CGPoint(x: self.displayWidth*0.5, y: self.displayHeight*0.207)
}
searchBack.image = UIImage(named: "searchBar Borders.png")
searchBack.contentMode = .scaleToFill
self.view.addSubview(searchBack)

非常感谢您的帮助! chrz in adv

【问题讨论】:

  • 您好,您可以添加更多关于如何创建边框或一些代码 sn-ps 的详细信息吗?
  • @GeorgeBafaloukas 添加了sn-p,也无意间找到了解决办法。如果你能帮助我理解它,那就太棒了
  • 该代码放在哪里? ViewDidLoad?我建议使用自动布局而不是计算这样的大小。此外,superView 的宽度有时会与此时的实际屏幕尺寸不同。发生这种情况是因为视图尚未在 viewDidLoad 上计算实际屏幕尺寸。这发生在视图生命周期的后期。

标签: swift xcode


【解决方案1】:

好吧,伙计们,当我试图弄清楚发生了什么时,我随机评论了下面的代码块,我运行了它,然后取消了它的注释,再次运行它,问题就解决了。

    if ( UIDevice.current.model.range(of: "iPad") != nil){
        self.searchBack.center = CGPoint(x: self.displayWidth*0.5, y: self.displayHeight*0.255)
    } else {
        self.searchBack.center = CGPoint(x: self.displayWidth*0.5, y: self.displayHeight*0.207)
    }

如果有人可以向我解释为什么会发生这种情况,那将是惊人的,这样我就可以避免下次在类似的事情上浪费时间。

【讨论】:

    【解决方案2】:

    该代码放在哪里? ViewDidLoad?

    我建议使用自动布局而不是像那样计算尺寸。此外,superView 的宽度有时会与此时的实际屏幕尺寸不同。

    发生这种情况是因为视图尚未在 viewDidLoad 上计算实际屏幕尺寸。这发生在视图生命周期的后期。

    如果您使用自动布局来正确缩放和定位视图,引擎将根据您为所有不同设备设置的约束来计算尺寸。

    同样,您可以有一些逻辑来为 iPad 设置不同的约束,或者您可以使用 iOS 提供的“设备特征”来帮助您识别不同的屏幕类别和方向。

    如果这有助于您理解问题并接受它作为答案,我将不胜感激。

    谢谢!

    【讨论】:

    猜你喜欢
    • 2022-12-11
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2012-07-25
    相关资源
    最近更新 更多