最简单的 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 宽度的屏幕上,实际移动的距离会不到屏幕的一半。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值