iOS7适配遇到的一些问题

来源:互联网 发布:现在淘宝做什么产品好 编辑:程序博客网 时间:2024/05/18 15:55

1、如果设置了self.navigationController.navigationBar 设置了UIBarMetricsLandscapePhone的背景;

      而没有设置UIBarMetricsDefault的背景,navigationBar会变透明


2、如果没有设置self.automaticallyAdjustsScrollViewInsets = NO,那么iOS7下会自动让scrollView滑动多次,以满足UITableView第一行的显示需要,这又带来了另外一个问题,下拉刷新的View的frame也随之发生了改变,导致整个下拉刷新不可用了   

还有可能在 POPviewController的时候崩溃

3、self.automaticallyAdjustsScrollViewInsets 这个属性是IOS7才有的新方法,目的就是为了让scrollView自动适应屏幕! 


我的ViewController继承的是UITableViewController, 所以TableView是随系统而产生的,在IOS7之前,tableView的Frame的起始点是(0, 20),在IOS7之后,它的起始点变成了(0,0),这个时候如果为了让下拉刷新能正常工作,必须设置self.edgesForExtendedLayout = UIRectEdgeNone
(这种情况适用于容器建立在UINavigationController).
4、如果设置了self.navigationController.navigationBar 设置UIBarMetricsDefault的背景为空,则默认的是IOS7上边栏平铺效果,如果设置了图片,并且这个图片高度保持在44(88),那么IOS5,6,7的效果是一致的。
5、iOS7中的StatusBar的没有了背景,他的UIStatusBarStyleLightContent和UIStatusBarStyleDefault只会改变StatusBar的文字,都不会有背景
6、ViewController-Based Status Bar Appearance控制了StatusBar的外观,如果设置为YES,则会调用preferredStatusBarStyle。如果为NO,则通过传统方式来控制

7、在IOS7下,如果不设置navigationBar的背景图片,而且设置[navigationBar setBarStyle:UIBarStyleBlackTranslucent];可以获取默认的黑色毛玻璃效果哟


如果大家还有遇到一些奇怪的问题,欢迎大家来补充


本文参考文档
http://blog.jaredsinclair.com/post/61507315630/wrestling-with-status-bars-and-navigation-bars-on-ios-7

https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/index.html

http://www.cocoachina.com/bbs/simple/?t154091.html

0 0