码迷,mamicode.com
首页 > 移动开发 > 详细

IOS开发指南第四章 IOS8多分辨率屏幕适配 学习

时间:2015-09-17 21:24:46      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:

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

    

 

 

 

            

       

  

IOS开发指南第四章 IOS8多分辨率屏幕适配 学习

标签:

原文地址:http://www.cnblogs.com/haugezi/p/4817406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!