不同手机
前提条件:
设计师给出的效果图应以iPhone6P(或8p)为基准。
什么时候使用这个宏?
所有控件的尺寸、x值y值,
cell的高度,文字的字体大小
如何使用这个宏?
在“Supporting Files”文件夹中的"PrefixHeader.pch"编写代码:
#define SYRealValue(value) ((value)/414.0f*[UIScreen mainScreen].bounds.size.width)
在设置值的时候敲SYRealValue(要设置的值)就好了。
这样以后在开发中凡是涉及到设置值的地方,都用这个宏,宏里填的值是以6P(或8p)为基准的值,即使跑在4和5上,也能按比例适配好,不需要我们操心了。
self.CloudRegistrationBtn.frame=CGRectMake(SYRealValue(self.CloudRegistrationBtn.frame.origin.x), SYRealValue(self.CloudRegistrationBtn.frame.origin.y), SYRealValue(self.CloudRegistrationBtn.frame.size.width), SYRealValue(self.CloudRegistrationBtn.frame.size.height));
self.loginBtn.frame=CGRectMake(SYRealValue(self.loginBtn.frame.origin.x), SYRealValue(self.loginBtn.frame.origin.y), SYRealValue(self.loginBtn.frame.size.width), SYRealValue(self.loginBtn.frame.size.height));
不同手机和ipad
#define kISiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define SYRealValue(value) kISiPhone==1?((value)/414.0f *[UIScreen mainScreen].bounds.size.width):((value)/768.0f *[UIScreen mainScreen].bounds.size.width)
准备两套xib
1.将 xib 文件名手动更改为 xxx~iphone.xib 和 xxx~ipad.xib
2.初始化时使用 [[xxx alloc] init] 即可,系统会自动判断系统类型并加载对应的 xib 文件
注意新建的xib要有两项配置: