最简单的 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的只需加一行代码

屏幕尺寸适配 |代码 |斯威夫特 | iOS

Android开发:最全面最易懂的Android屏幕适配解决方案

Android最全面最易懂的Android屏幕适配解决方案

Android最全面最易懂的Android屏幕适配解决方案

Android开发:最全面最易懂的Android屏幕适配解决方案