最简单的 iPad 屏幕适配方案
Posted 颐和园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最简单的 iPad 屏幕适配方案相关的知识,希望对你有一定的参考价值。
通过修改 transform 实现的屏幕适配方案。
这可能是最简单的 iPad 屏幕适配方案。只需在 viewDidLoad 方法设置 view.transform 即可:
let SCREEN_WIDTH = UIScreen.main.bounds.size.width
let SCREEN_HEIGHT = UIScreen.main.bounds.size.height
let DESIGN_SCREEN_WIDTH = CGFloat(834)
let DESIGN_SCREEN_HEIGHT = CGFloat(1194)
let SCREEN_SCALE_X = SCREEN_WIDTH / DESIGN_SCREEN_WIDTH
let SCREEN_SCALE_Y = SCREEN_HEIGHT / DESIGN_SCREEN_HEIGHT
let SCREEN_SCALE_BETTER = min(SCREEN_SCALE_Y, SCREEN_SCALE_X)
let SCREEN_WIDTH_BETTER = SCREEN_WIDTH / SCREEN_SCALE_BETTER
let SCREEN_HEIGHT_BETTER = SCREEN_HEIGHT / SCREEN_SCALE_BETTER
override func viewDidLoad() {
view.transform = CGAffineTransform(scaleX: SCREEN_SCALE_BETTER, y: SCREEN_SCALE_BETTER)
这里,DESIGN_SCREEN_WIDTH 和 DESIGN_SCREEN_HEIGHT 是设计图中 iPad 的宽和高。SCREEN_WIDTH_BETTER 和 SCREEN_HEIGHT_BETTER 常量也是有必要的,因为如果你在进行 translate 动画时,凡是涉及到屏幕宽高的移动,都要用这两个常量代替 SCREEN_WIDTH 和 SCREEN_HEIGHT,避免移动的像素不是你想要的,比如在下面的代码中,你必须要 SCREEN_WIDTH_BETTER 替代 SCREEN_WIDTH :
let x = -SCREEN_WIDTH_BETTER/2
view.move(x: x, y: 0, duration: 1) // 往左移动屏幕一半的距离
如果你仍然用 SCREEN_WIDTH ,你会发现在小于 DESIGN_SCREEN_WIDTH 宽度的屏幕上,实际移动的距离会不到屏幕的一半。
以上是关于最简单的 iPad 屏幕适配方案的主要内容,如果未能解决你的问题,请参考以下文章
Android最简单屏幕适配,项目用dp,sp的只需加一行代码