IOS7 開發注意事項

1,修改狀態欄的樣式和隱藏。網絡

首先,須要在Info.plist配置文件中,增長鍵:UIViewControllerBasedStatusBarAppearance,並設置爲YES;app

而後,在UIViewController子類中實現如下兩個方法:less

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

- (BOOL)prefersStatusBarHidden
{
    return NO;
}
最後,在須要刷新狀態欄樣式的時候,調用[self setNeedsStatusBarAppearanceUpdate]方法便可刷新 注意:
[self setNeedsStatusBarAppearanceUpdate]在push  或者 present 的controller裏面調用才起做用。

2,UITableViewCell的定製。ide

之前能夠直接繼承UITableViewCell而後drawRect;性能

如今不行了,如今的UITableViewCell包含了一個scrollView,你重繪了UITableViewCell將會被這個scrollView遮住而徹底無法顯示.字體

解決思路:fetch

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathspa

{設計

UITableViewCell * cell = [[[UITableViewCellallocinitWithStyle:UITableViewCellStyleDefaultreuseIdentifier:nilautorelease];orm

UIView * subview = [[[XXView allocinitautorelease];

subview.userInteractionEnabled = NO;// 不設爲NO會屏蔽cell的點擊事件

subview.backgroundColor = [UIColorclearColor];// 設爲透明從而使得cell.backgroundColor有效.

subview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

[cell.contentView addSubview:subview];// cell.contentView是個readonly屬性,因此別想着替換contentView了.

return cell;

}

3,用戶界面設計中,新增了一個重要的概念:UIKit動力

默認支持以下5種動力行爲:吸附行爲(UIAttachmentBehavior),碰撞行爲(UICollisionBehavior),重力行爲(UIGravityBehavior),推進行爲(UIPushBehavior),捕捉行爲(UISnapBehavior;

4,將TextKit整合到全部基於文本的控件中(Text Kit能夠對程序中的文本內容進行精緻的排版)。

5,多任務

iOS7中,應用程序的後臺執行模型,新增了以下兩種類型:

1.fetch:

應用程序能夠從網絡中有規律的下載新數據;

註冊方法爲:在程序的Info.plist中,將UIBackgroundModes鍵值設置爲fetch,而後在app delegate中,使用方法setMinimumBackgroundFetchInterval:來設置下載新數據操做之間的最小時間間隔。另外,必須在app delegate中實現application:performFetchWithCompletionHandler:方法以執行任意的下載。

2.remote-notifaction:

在iOS7中,經過推送通知,能夠啓動一個後臺下載操做任務。

要使用這種模型,只須要將程序Info.plist文件中的UIBackgroundModes鍵值設置爲remote-notification,而後在app delegate中實現application:didReceiveRemoteNotification:fetchCompletionHandler: 方法。

6,UIView類增長屬性tintColor:可使用一個tint color,並對view和它的subview有影響。

7,UIViewController增長: View controller之間的切換(transition)能夠自定義、驅動式交互(driven interactively),或者徹底根據本身指定的切換方式來替換。

8,UIView和UIScreen提供了一個新的方法:snapshot——返回一個view,能夠用來顯示程序的內容。 

9,UIFontDescriptor對象使用一個屬性字典來描述字體。經過font descriptor能夠與其它平臺相互交互。UIFont和UIFontDescriptor類支持動態調整字體大小。

10,UIApplicationDelegate協議新增了處理後臺獲取數據的操做。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler NS_AVAILABLE_IOS(7_0); 

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler NS_AVAILABLE_IOS(7_0); 

- (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)())completionHandler NS_AVAILABLE_IOS(7_0);

11,Table view支持對row或其餘元素高度的評估(estimating),這樣能夠提高Table view的滾動性能。

12, Media Player Framework

      在Media Player framework中,MPVolumeView類能夠判斷用戶選擇的無線路由(wireless route,例如AirPlay和Bluetooth)是否可用。你也能夠判斷無線路由當前是否可用。關於新接口信息,請參看framework的頭文件。關於Media Player framework涉及到的類,請參看Media Player Framework Reference。

13, AV Foundation Framework

 AVAudioSession支持一些新的行爲:能夠選擇音頻輸入的首選項,包括來自內置麥克風的音頻;支持多通道的輸入和輸出

相關文章
相關標籤/搜索