ios7控件特性(一)

苹果发布iOS7以后,iOS7所有采用扁平化的界面,咱们的app界面在iOS7上出现了很大的改变,这包括UINavigationBar,UIButton,UIActionSheet,UITabBar等。如今我主要针对这几个功能说明一下在iOS7上的兼容性。 1.UINavigationBar 在iOS7如下全部的UINavigationBar都采用拟物化的界面,给人的感受颇有立体感,可是在iOS7中全部的界面使用的扁平化的界面,这让咱们的app在iOS7的系统上看起来不是那么的协调。 把UINavigationBar变为扁平化的就是加一个背景图片 <ignore_js_op style="-ms-word-wrap: break-word;"> [self.navigationController.navigationBarsetBackgroundImage:navBackImage forBarMetrics:UIBarMetricsDefault]; <ignore_js_op style="-ms-word-wrap: break-word;"> 2.UIButton <ignore_js_op style="-ms-word-wrap: break-word;"> 在iOS7上出现模糊装的,看起来不是很明显, 修复办法给 UIButton加上边框,代码以下: 这须要引用: #import <QuartzCore/QuartzCore.h> button.layer.cornerRadius=8; heightBtn.layer.borderWidth=1.0f; heightBtn.layer.borderColor=[UIColorlightGrayColor].CGColor; <ignore_js_op style="-ms-word-wrap: break-word;"> 3.UIActionSheet 在iOS7上若是在UIActionSheet中加上UIPickerView会显示不彻底,缘由是在iOS7上显示的高度不够,它是相对与整个屏幕的位置定位的,因此应该修改UIActionSheet显示的高度。 4.UITabBar 在iOS7中若是想隐藏UITabBar只是使用 self.tabBarController.tabBar.hidden = YES; 是会隐藏UITabBar,可是底部会留下阴影,也就是整个屏幕不会所有显示,解决办法是在self.hidesBottomBarWhenPushed = YES;当推送的时候把UITabBar隐藏掉就好了,而后你能够从新设计UIView的大小等等。 四、UITableViewCell     在以前的版本中UITableViewCell的backgroundColor是透明背景的,可是在iOS7中是默认白色背景,若是在TableView后面加入背景的应用要注意了,在建立UITableViewCell的时候把backgroundColor设置为[UIColor clearColor]; 五、UIViewController的变化      以前的版本中UIViewController中的view在显示后会自动调整为去掉导航栏的高度的。这样咱们摆放控件的时候就会在导航栏的下面显示。可是在iOS7中UIViewController的wantsFullScreenLayout已经被舍弃了,再也不提供此属性,全部的UIViewController建立后默认就是full Screen的,所以若是带导航栏的应用界面中的部分控件会被导航栏覆盖掉。      要解决这中状况可使用iOS7中UIViewController新增的属性extendedLayoutIncludesOpaqueBars和edgesForExtendedLayout来解决。其中这个属性指定了当Bar使用了不透明图片时,视图是否延伸至Bar所在区域,默认值时NO。而edgesForExtendedLayout则是表示视图是否覆盖到四周的区域,默认是UIRectEdgeAll,即上下左右四个方向都会覆盖,那么为让顶部不进行延伸到导航栏覆盖的区域,咱们能够把顶部区域延伸去掉。实现代码以下: self.extendedLayoutIncludesOpaqueBars = NO; self.edgesForExtendedLayout = UIRectEdgeBottom | UIRectEdgeLeft | UIRectEdgeRight; 六、没法再获取MAC地址       在iOS7中没法再获取到MAC地址了,他会固定返回02:00:00:00:00:00。在以前版本中使用MAC地址的应用可能要作调整了。 七、iOS7(Xcode5)中隐藏状态栏的方法        将4s的系统升级到了扁平化的iOS7,如丝般顺滑,比预想的要完美。不少不经意间发现的小细节让人发出雅典娜之惊叹。因此狗日的不要相信那些媒体的胡说八道,那些人根本就没有体会过即能写出各类奇谈怪论。纸上得来终觉浅,绝知此事需躬行。推荐升级安装。       而后是Xcode5,整个界面也是冲着扁平化的方向,怎么说呢,简约而不简单。总之就是更好用了。赶忙将之前写的一些app放Xcode5下编译,很多问题出来了。      首当其冲就是界面上的状态栏了,iOS7默认程序就是全屏(fullscreen)模式,用半透明的方法将状态栏挡在后面,感受有点怪怪的     要干掉它还真不容易,在iOS7以前,咱们能够这样干:     [[UIApplication sharedApplication] setStatusBarHidden:YES];     可是如今无效了,怎么解?Google了一下,这么干:在app的plist文件中,添加两个属性:UIStatusBarHidden和UIViewControllerBasedStatusBarAppearance,顾名思义,就是用来设置状态栏的,如图所示: <ignore_js_op style="-ms-word-wrap: break-word;">
相关文章
相关标签/搜索