你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> ios項目適配ios6 ios7

ios項目適配ios6 ios7

編輯:關於IOS

此篇,我基於storyboard紀錄一下項目如何適配ios6 ios7.

步驟:

1 導航欄問題解決。眾所周知,iphone5 為4寸,iphone4 為3.5寸,所以為適配iphone4 iphone5 導航欄的大小不一,且ios7 時,坐標從(0,0)開始。

創建UINavigationController的子類

在子類中添加:

#pragma mark 一個類只會調用一次

+ (void)initialize

{

// 1.取出設置主題的對象

UINavigationBar *navBar = [UINavigationBar appearance];

// 2.設置導航欄的背景圖片

NSString *navBarBg = nil;

if (IOS7Later ) { // iOS7

navBarBg = @"navBG64";

navBar.tintColor = [UIColor whiteColor];

} else { // 非iOS7

navBarBg = @"navBG";

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;

}

[navBar setBackgroundImage:[UIImage imageNamed:navBarBg] forBarMetrics:UIBarMetricsDefault];

NSLog(@"navFrame: %@",NSStringFromCGRect(navBar.frame));

// 3.標題

[navBar setTitleTextAttributes:@{

UITextAttributeTextColor : [UIColor whiteColor]

}];

}

#pragma mark 控制狀態欄的樣式

- (UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleDefault;//黑色

// return UIStatusBarStyleLightContent;

}

2 設置viewcontroller中屬性

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

(2)

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

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved