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 = [[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:nil] autorelease];orm
UIView * subview = [[[XXView alloc] init] autorelease];
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支持一些新的行爲:能夠選擇音頻輸入的首選項,包括來自內置麥克風的音頻;支持多通道的輸入和輸出