您的位置:首页 > 移动开发 > IOS开发

关于iOS7的适配问题

2014-08-08 09:47 429 查看
(一)没有导航栏的viewController适配方法

1.首先创建一个测试工程,根视图是一个UIViewController,在view上添加一个button,frame为(0,0,100,40),运行结果如图:



button和状态栏重叠了,也就是说,在没有导航栏的情况下,代码运行在iOS7上,内容向上偏移了20px,通过查阅资料,找到两种解决方法:

(1)设置self.view.bounds,代码如下:



运行结果:



这种方法需要更改每一个viewController,较为麻烦

2.设置window,在appdelegate.mapplication: didFinishLaunchingWithOptions:方法中添加代码如下:



这种方法可以影响所有的subview。

运行之后发现状态上的内容看不到了:



解决方法:在info.plist文件中添加View controller-based status bar appearance项,设置为NO。

(二)有导航栏的viewController适配方法

现在将根视图改为UINavigationController,不设置任何属性,运行结果:



可以看到button被导航栏覆盖了,只要在viewDidLoad中设置以下self.view的edgesForExtendedLayout属性就行了,self.edgesForExtendedLayout = UIRectEdgeNone;再运行一下:



UIScrollView
在iOS7中scrollview滚动的时候,上下都可以滚动,即使contensize的高度和内容的高度一样也是如此,设置属性self.automaticallyAdjustsScrollViewInsets
= NO就可以了,具体原因还没有搞明白。

注:判断系统版本的宏定义:#define
isIos7System [[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: