苹果最新的屏幕适配方案

2018-09-15  本文已影响29人  阿龍飛
手机型号 分辨率 启动图尺寸 系数
iPhoneES 640 × 1136 320 x 568 @2x
iPhone8 750 × 1334 375 x 667 @2x
iPhone8Plus 1242 × 2208 414 x 736 @3x
iPhoneXS 1125 × 2436 375 x 812 @3x
iPhone XR 828 x 1792 414x 896 @2x
iPhone XS Max 1242 x 2688 414 x 896 @3x

Xcode10一上来就是build没2秒就报错了,看报错的说法是有重复的info.plist。去掉重复的plist文件 A4AA6CB1B30B6C133D537DD4F5CC4176.png

libstdc++相关的3个库(libstdc++、libstdc++.6、libstdc++.6.0.9)在XCode10和iOS12中被移除
解决办法一:删除libstdc++,编译无错则不用适配

宏定义

#define kNavBarHeight              (iphoneX ? 88.0 : 64.0)
#define kBottomBarHeight        (iphoneX ? 34.0 : 0)
#define kContentHeight             (kScreenHeight - kNavBarHeight-kBottomBarHeight)

针对继承自UIScrollView的,需要处理一下内边距

第一步:关闭自动调整内边距
if (@available(iOS 11.0, *)) {
        [UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

第二步:在使用的地方手动设置内边距(千万别全局设置,容易出事)
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, kBottomBarHeight, 0);
这样设置以后,底下的触摸区域就能正常显示内容了,而且当UIScrollView滑到最底部的时候,不会被遮住。

除此之外,有些比较大的控件,产品会要求按照屏幕比例进行调整,小屏幕的显示的小一点,大屏幕的显示大一点,这个也是两个宏搞定
#define kScaleH                   (kScreenHeight/667.0)
#define kScaleW                  (kScreenWidth/375.0)

现在设配:iOS10以上 [图片上传中...(82C0359E14A7E8DCE6C40882B394034C.png-b6a9dc-1537325157244-0)] 82C0359E14A7E8DCE6C40882B394034C.png

Example:

Tables Are Cool
col 3 is right-aligned $1600
col 2 is centered $12
zebra stripes are neat $1
dog bird cat
foo foo foo
bar bar bar
baz baz baz
上一篇下一篇

猜你喜欢

热点阅读