iOS屏幕适配

来源:互联网 发布:淘宝红包怎么领 编辑:程序博客网 时间:2024/06/06 19:35

在苹果推出iPhone6Plus后,苹果的机型增多,显示屏的大小也变得多样,因此之前的绝对布局的方法难以满足手机的适配问题,因此苹果推出了相对布局的界面适配方法,本文所讲的界面适配方法主要基于masonry的适配方法,如果不懂masonry得界面布局方法,请先移步:

http://www.cocoachina.com/iOS/20141219/10702.html

1.界面分析:苹果自4s至7,大概以下几种尺寸
http://blog.csdn.NET/phunxm/article/details/42174937/
大致有320x480,320x568,375x667,414x736这四种尺寸,我们发现这四种尺寸宽和高既不相等,也不成比例,因此在做设计的时候如果只以一种机型为标准,那么就会出现在别的机型控件的显示问题,那么在尺寸上面如何统一标准,从而实现在各个机型上面都可以完整的显示出来呢

2.尺寸统一
在这四种机型中,我们只关注手机的宽高比例,只要做到在各种机型中宽高比例一致,那么就可以实现机型的统一,我们发现在这种尺寸中宽高比例分别为0.67,0.56,0.56,0.56,我们发现后面3中机型比例大体一致,我们解决的方法采用uiscrollview,增加屏幕显示的空间,从而实现界面的宽高比例一致,在masonry中的用法中的中级用法中可以自动的计算出contentSize,因此我们在做界面的时候可以在整个selv.view上面利用masonry放入一个scrollview,在超出屏幕的控件采用scrollview也可以显示在界面上,因此可以把界面上的控件添加到scrollview上面,从而实现所有的界面适配(这种方法也可以实现在ipad上面的适配),现附上代码,仅供参考

- (void) viewDidLoad{    [superviewDidLoad];    self.automaticallyAdjustsScrollViewInsets =NO;    self.scrollView=[[UIScrollView alloc]init];    [self.view addSubview:self.scrollView];    [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.and.left.and.right.equalTo(self.view);  make.bottom.equalTo(self.view).offset(-kScaleSize(10));    }];    self.scrollView.alwaysBounceVertical=YES;    self.scrollView.scrollEnabled=YES;    self.scrollView.showsVerticalScrollIndicator=NO;    self.viewContent=[[UIView alloc]init];    [self.scrollView addSubview:self.viewContent];    [self.viewContent mas_makeConstraints:^(MASConstraintMaker *make) {        make.edges.equalTo(self.scrollView);        make.width.equalTo(self.scrollView);    }];    [self createView:self.viewContent];    if (self.viewContent.subviews.count>0){        [self.viewContentmas_makeConstraints:^(MASConstraintMaker *make) {            make.bottom.equalTo(self.viewContent.subviews.lastObject).offset(10);        }];    }}- (void) createView:(UIView*)contentView{}
0 0
原创粉丝点击