在做屏幕适配时,个人习惯在控制器(UIController)中添加bgView(UIView)用来适配屏幕;而不用self.view;
因为,self.view的位置不适合重新设置他的起始位置;而自己定义的bgView可以重新设置起始点位置;操作起来比较方便!
以下是各个尺寸的及系统的打印出来的信息;
1)3.5inch ios 6.1 //3.5英寸,系统6.1
-statubar:(null) //状态栏的为空navbar frame = (0 20; 320 44); //导航栏的起始位置和大小; 这个工程是有导航条的,所以这个navbar 有大小和位置;如果没有导航栏的话,这里的打印信息,应该跟状态栏一样。
self.view.frame = (0 20; 320 460); //self.view的位置和尺寸;
对于 iOS6的系统,我们不用过多的去设置起始位置originY,不管有没有导航栏;你只要把起始bgView的起始位置设置成如下就可以了:origin = (0,0);
他就不会让导航栏给遮住;系统会自动调整。我不用去费心!但大小要减去44.
originY 0.0 height 460-44
bgView.frame = CGRectMake(0.f,0.f,320,self.view.frame.size.height-44);
2)4.0inch ios6.1
statubar:(null)
self.view.frame = (0 20; 320 548);
设置:
bgView.frame = CGRectMake(0.f,0.f,320,self.view.frame.size.height-44);3)3.5inch ios7.0
statubar:(null)
navbar frame = (0 20; 320 44);
self.view.frame = (0 0; 320 480); //这里的位置是从(0,0)开始的,而ios6是从(0,20)开始的;
20是状态栏的高度;44是导航栏的高度;
bgView.frame = CGRectMake(0, 44+20, 320, self.view.frame.size.height-44-20);
4)4.0inch ios7.0
statubar:(null)
navbar frame = (0 20; 320 44);
self.view.frame = (0 0; 320 568);
bgView.frame = CGRectMake(0, 44+20, 320, self.view.frame.size.height-44-20);
这样设置之后,添加到bgView的子控件 就不会给导航栏遮住了。
ps:写个文章很辛辛苦苦!
http://www.appcoda.com