swift - XCode 模拟器和实际设备显示不同的 UI
问题描述
我遇到了一个问题,我希望你能帮助我!事实证明,我第一次遇到一个问题,即我的实际 iPhoneX 设备的 UI 看起来与我的 XCode 模拟器的不同。下面是一张图片:
一个金色边框的盒子是这个问题的唯一受害者。我已经尝试重新启动计算机和手机,并且我还将手机和 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
解决方案
好吧,伙计们,当我试图弄清楚发生了什么时,我随机评论了下面的代码块,我运行了它,然后取消了它的注释,再次运行它,问题就解决了。
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)
}
如果有人可以向我解释为什么会发生这种情况,那将是惊人的,这样我就可以防止下次在这样的事情上浪费时间。
推荐阅读
- c - POSIX,在 pthread_t 之间传递应用程序数据
- android - 如何在不单击按钮的情况下验证密码?
- c# - 用正则表达式替换字符串中项目的特定实例
- php - 如何设置 phpmyadmin 和 SQL 以通过 REST-api 进行消息传递?
- java - 具有多个具有 main 方法的类的 intellij 项目
- android - Android , Firebase JSON 字符串
- sql - 我想将此 NOT IN 查询实现为一系列 OUTER JOIN,以尝试优化执行
- gnuplot - 在 Gnuplot 动画中显示更改的列值
- kubernetes - kubernetes statefulsets:节点在同一节点上重新启动后是否看到相同的持久卷
- documentation - 如何使用 pandoc 将特定网页转换为 markdown 或 asciidoc?