现在的位置: 首页 > 综合 > 正文

ios7兼容 蛋疼的问题

2018年08月21日 ⁄ 综合 ⁄ 共 1619字 ⁄ 字号 评论关闭

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

1.UINavigationBar

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

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




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




2.UIButton

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

修复办法给

UIButton加上边框,代码如下:

  button.layer.cornerRadius=8;

heightBtn.layer.borderWidth=1.0f;

heightBtn.layer.borderColor=[UIColorlightGrayColor].CGColor;

这需要引用:

#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 相关适配问题

抱歉!评论已关闭.