1 获取IOS设备屏幕信息
CGSize iOSDeviceScreenSize = [UIScreen mainScreen].bounds.size; NSString *s = [NSString stringWithFormat:@"%.0f x %.0f", iOSDeviceScreenSize.width, iOSDeviceScreenSize.height];
获取设备信息判断是否是ipone-判断横屏还是竖屏-判断设备型号
属性userInterfaceIdiom是枚举类型
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) { if (iOSDeviceScreenSize.height > iOSDeviceScreenSize.width) {//竖屏情况 if (iOSDeviceScreenSize.height == 568) {//iPhone 5/5s/5c(iPod touch 5)设备 NSLog(@"iPhone 5/5s/5c(iPod touch 5)设备"); } else if (iOSDeviceScreenSize.height == 667) {//iPhone 6 NSLog(@"iPhone 6 设备"); } else if (iOSDeviceScreenSize.height == 736) {//iPhone 6 plus NSLog(@"iPhone 6 plus 设备"); } else {//iPhone4s等其它设备 NSLog(@"iPhone4s等其它设备"); } } if (iOSDeviceScreenSize.width > iOSDeviceScreenSize.height) {//横屏情况 if (iOSDeviceScreenSize.width == 568) {//iPhone 5/5s/5c(iPod touch 5)设备 NSLog(@"iPhone 5/5s/5c(iPod touch 5)设备"); } else if (iOSDeviceScreenSize.width == 667) {//iPhone 6 NSLog(@"iPhone 6 设备"); } else if (iOSDeviceScreenSize.width == 736) {//iPhone 6 plus NSLog(@"iPhone 6 plus 设备"); } else {//iPhone4s等其它设备 NSLog(@"iPhone4s等其它设备"); } } } }
2 竖屏中状态栏20点,导航栏44点,标签栏49点。一般内容视图图片大小就能设计出来了。
1)传统布局:为了保证竖屏和横屏都能显示控件,需要设置控件和屏幕之间的距离是绝对距离。view中的Autosizing属性设置。
模拟器旋转屏幕是command + 左右箭头
2)AutoLayout布局:constraint定义了控件和视图之间的关系 只能解决界面差别小的情况
对齐:创建居中和对齐约束
Pin:创建距离和位置相关约束 constrain to margins 对边缘的约束,一般不选中
通过约束的属性检查器修改
3 Size Class与ios 8多屏幕适配
Compact 紧凑<Any<Regular 正常
wCompact|hCompact 适用于除5.5寸iphone外所有iphone的横屏情况
wRegular|hCompact 适用于5.5寸iphone横屏情况
wCompact|hAny wCompact|hRegular 适用竖屏情况
预览功能:辅助编辑器-preview-main.storyboard 点击+可以添加预览设备
由于竖屏和横屏切换引起的布局问题快捷解决:Add Missing Constrains
4 屏幕滚动视图UITextView和UIScrollView的适配问题要结合代码去解决
frame属性:视图框架大小
contentSize属性:内容视图大小 CGSize类型
contentInset属性:在内容视图周围添加边框,一般为了放置工具栏等,含top bottom left right四个分量
contentOffset属性:内容视图与屏幕滚动视图坐标原点的偏移量 CGPoint类型 设置方法:-setContentOffset:animated:
*********
bounds(CGRect类型):frame和origin分量,这两个分量的类型是CGSize和CGPoint
*********
结局布局问题一般过程是:先使用size class-一次性添加约束-再微调 反复迭代
视图布局时会回调-(void)viewDidLayoutSubviews方法 可以设置视图
5 使用asset catalog 管理图片:不同分辨率的设备使用不同的图片
打开image.xassets-点击+选择菜单-设置设备-打开图片文件夹拖拽图片-在代码或InterfaceBuilder中使用
1*是不同显示屏 2*是4s Retina2*是5/5s/5c 3*是6/6p