苹果发布iOS7之后,iOS7全部采用扁平化的界面,我们的app界面在iOS7上出现了很大的改变,这包括UINavigationBar,UIButton,UIActionSheet,UITabBar等。现在我主要针对这几个功能说明一下在iOS7上的兼容性。

1.UINavigationBar

在iOS7以下所有的UINavigationBar都采用拟物化的界面,给人的感觉很有立体感,但是在iOS7中所有的界面使用的扁平化的界面,这让我们的app在iOS7的系统上看起来不是那么的协调。

把UINavigationBar变为扁平化的就是加一个背景图片

ios兼容性 vant ios兼容性如何_UI

[self.navigationController.navigationBarsetBackgroundImage:navBackImage forBarMetrics:UIBarMetricsDefault];

ios兼容性 vant ios兼容性如何_扁平化_02




2.UIButton

在iOS7上出现模糊装的,看起来不是很明显,

ios兼容性 vant ios兼容性如何_ios兼容性 vant_03

修复办法给

UIButton加上边框,代码如下:

button.layer.cornerRadius=8;
heightBtn.layer.borderWidth=1.0f;
heightBtn.layer.borderColor=[UIColorlightGrayColor].CGColor;

ios兼容性 vant ios兼容性如何_ios_04

这需要引用:

#import <QuartzCore/QuartzCore.h>

3.UIActionSheet

在iOS7上如果在UIActionSheet中加上UIPickerView会显示不完全,原因是在iOS7上显示的高度不够,它是相对与整个屏幕的位置定位的,所以应该修改UIActionSheet显示的高度。

4.UITabBar

在iOS7中如果想隐藏UITabBar只是使用

self.tabBarController.tabBar.hidden = YES;

是会隐藏UITabBar,但是底部会留下阴影,也就是整个屏幕不会全部显示,解决办法是在self.hidesBottomBarWhenPushed = YES;当推送的时候把UITabBar隐藏掉就行了,然后你可以重新设计UIView的大小等等。




代码是navigationBar+tabBar组成的
在viewDidLoad里加了如下代码,

if([[[UIDevice currentDevice] systemVersion] floatValue]>= 7.0) 
  
{ 
  
    self.edgesForExtendedLayout =UIRectEdgeNone; 
  
    self.extendedLayoutIncludesOpaqueBars =NO;   
  
    self.modalPresentationCapturesStatusBarAppearance= NO;  
  

    self.navigationController.navigationBar.barTintColor=[UIColor grayColor]; 
  
    self.tabBarController.tabBar.barTintColor=[UIColor grayColor]; 
  
}



加了之后UI显示正常了,即没有上移20的高度。
问题是,当运行程序,自动进入到tabBar对应的第一个页面时,navigationBar和tabBar会出现黑色的背景,一小会会消失,才变成自己设置的背景色。
如果注释掉上面代码,进入程序时不会出现黑色背景,但是里面的UI会上移20的高度...



解决方法:


self.navigationController.navigationBar.translucent= NO; 
 
      self.tabBarController.tabBar.translucent= NO;




http://www.vinqon.com/codeblog/?detail/11109 




苹果发布iOS7之后,iOS7全部采用扁平化的界面,我们的app界面在iOS7上出现了很大的改变,这包括UINavigationBar,UIButton,UIActionSheet,UITabBar等。现在我主要针对这几个功能说明一下在iOS7上的兼容性。

1.UINavigationBar

在iOS7以下所有的UINavigationBar都采用拟物化的界面,给人的感觉很有立体感,但是在iOS7中所有的界面使用的扁平化的界面,这让我们的app在iOS7的系统上看起来不是那么的协调。

把UINavigationBar变为扁平化的就是加一个背景图片

ios兼容性 vant ios兼容性如何_UI

[self.navigationController.navigationBarsetBackgroundImage:navBackImage forBarMetrics:UIBarMetricsDefault];

ios兼容性 vant ios兼容性如何_扁平化_02




2.UIButton

在iOS7上出现模糊装的,看起来不是很明显,

ios兼容性 vant ios兼容性如何_ios兼容性 vant_03

修复办法给

UIButton加上边框,代码如下:

button.layer.cornerRadius=8;
heightBtn.layer.borderWidth=1.0f;
heightBtn.layer.borderColor=[UIColorlightGrayColor].CGColor;

ios兼容性 vant ios兼容性如何_ios_04

这需要引用:

#import <QuartzCore/QuartzCore.h>

3.UIActionSheet

在iOS7上如果在UIActionSheet中加上UIPickerView会显示不完全,原因是在iOS7上显示的高度不够,它是相对与整个屏幕的位置定位的,所以应该修改UIActionSheet显示的高度。

4.UITabBar

在iOS7中如果想隐藏UITabBar只是使用

self.tabBarController.tabBar.hidden = YES;

是会隐藏UITabBar,但是底部会留下阴影,也就是整个屏幕不会全部显示,解决办法是在self.hidesBottomBarWhenPushed = YES;当推送的时候把UITabBar隐藏掉就行了,然后你可以重新设计UIView的大小等等。




代码是navigationBar+tabBar组成的
在viewDidLoad里加了如下代码,

if([[[UIDevice currentDevice] systemVersion] floatValue]>= 7.0) 
  
{ 
  
    self.edgesForExtendedLayout =UIRectEdgeNone; 
  
    self.extendedLayoutIncludesOpaqueBars =NO;   
  
    self.modalPresentationCapturesStatusBarAppearance= NO;  
  

    self.navigationController.navigationBar.barTintColor=[UIColor grayColor]; 
  
    self.tabBarController.tabBar.barTintColor=[UIColor grayColor]; 
  
}



加了之后UI显示正常了,即没有上移20的高度。
问题是,当运行程序,自动进入到tabBar对应的第一个页面时,navigationBar和tabBar会出现黑色的背景,一小会会消失,才变成自己设置的背景色。
如果注释掉上面代码,进入程序时不会出现黑色背景,但是里面的UI会上移20的高度...



解决方法:


self.navigationController.navigationBar.translucent= NO; 
 
      self.tabBarController.tabBar.translucent= NO;




http://www.vinqon.com/codeblog/?detail/11109