ios7 兼容之前版本


1,首先

//定義宏,判斷ios7
#define IOS7 [[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0

//添加代碼
if (IOS7)
{
    self.edgesForExtendedLayout = UIRectEdgeNone;               //視圖控制器,四條邊不指定
    self.extendedLayoutIncludesOpaqueBars = NO;                 //不透明的操作欄
self.modalPresentationCapturesStatusBarAppearance = NO; }

  

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
    if (IOS7)
    {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = NO;
        self.modalPresentationCapturesStatusBarAppearance = NO;
//        self.automaticallyAdjustsScrollViewInsets = NO;
//        self.navigationController.navigationBar.translucent = NO;
//        self.tabBarController.tabBar.translucent = NO;
    }
#endif

self.automaticallyAdjustsScrollViewInsets = NO;
看這個UIViewController的這個屬性你就明白了,此屬性默認為YES,這樣UIViewController下如果只有一個UIScollView或者其子類,那么會自動留出空白,讓scollview滾動經過各種bar下面時能隱約看到內容。但是每個UIViewController只能有唯一一個UIScollView或者其子類,如果超過一個,需要將此屬性設置為NO,自己去控制留白以及坐標問題。

 

http://blog.csdn.net/mac_cm/article/details/9234451,這個里面有一些屬性介紹

#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

這個是判斷iphone5 or 4 

 

注意,目前我做的適配

如果之前使用了nib文件,同時ui不是自己手寫代碼add上去的,這里需要在代碼里控制每一個ui了(如果你也中槍,那就跟我一樣慢慢改吧,以后寫代碼盡可能手動)

如果是代碼里畫的ui,那么問題不大,做出響應調整即可。

 

當然如果你不需要兼容ios5.0,這樣可以完全使用autolayout,這樣可以使你的工作量降至最低,如果有不同方法歡迎大家來討論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM