我进行了搜索,但仍然遇到问题,无法使我的应用程序在从iPhone 4到目前最大尺寸的iPhone的纵向模式下适合所有iPhone尺寸。
什么是使我的应用在纵向模式下适合所有尺寸iPhone的最佳方法?
我以iPhone Xs的大小创建了该应用程序。如何使我的应用程序适合iPhone 4及更高版本的所有iPhone尺寸?
答案 0 :(得分:2)
完成此操作的唯一方法是使所有内容都与宽度和高度成比例,因此您不必忘记设置静态值,另一种方法是使内容能够滚动并设置所需的任何宽度/高度,我还建议使用iphone 5/4进行布局说,以使您靠近剪裁设备,以便更好地构建设计,并确保它可以在大型设备中正确缩放,这是一些需要寻找的关键项目
如果您面对复杂的计算来拖动约束作为出口并在代码中进行调整,也可以放心
答案 1 :(得分:1)
您应该阅读iOS Auto Layout。它具有所有功能,但学习曲线陡峭。一旦掌握了原理,一切都会自动开始(除了一些错误)。
要适应不同的iPhone屏幕尺寸,您还应该使用layout margin guide,以确保更大的iPhone有更大的页边距,反之亦然。
由于iPhone X和更高版本的显示比例不同,如果您的用户界面不是全部列表或基本内容,则可能需要在代码中进行一些特殊的设置。
答案 2 :(得分:1)
通常,扩展UI以适合多个设备的最佳方法是使用Auto Layout。您不必使用固定的框架大小来定义接口,而可以使用约束条件来根据设备在运行时计算框架。
可以在Ctrl中将约束从一个视图组件拖动到另一个视图组件,然后使用“属性”检查器进行微调。
否则,如果您愿意,可以在代码中创建并应用约束:
override func viewDidLoad() {
super.viewDidLoad()
let myView = UIView()
myView.backgroundColor = .red
myView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(myView)
NSLayoutConstraint.activate([
myView.widthAnchor.constraint(equalToConstant: 50),
myView.heightAnchor.constraint(equalToConstant: 50),
myView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
myView.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}
上面的示例将在屏幕中央添加一个红色框,无论设备屏幕大小如何。