IOS7 开发注意事项
1,修改狀態欄的樣式和隱藏。
首先,需要在Info.plist配置文件中,增加鍵:UIViewControllerBasedStatusBarAppearance,并設置為YES;
然后,在UIViewController子類中實現以下兩個方法:
- (UIStatusBarStyle)preferredStatusBarStyle {return UIStatusBarStyleLightContent; }- (BOOL)prefersStatusBarHidden {return NO; } 最后,在需要刷新狀態欄樣式的時候,調用[self setNeedsStatusBarAppearanceUpdate]方法即可刷新注意: [self setNeedsStatusBarAppearanceUpdate]在push 或者 present 的controller里面調用才起作用。2,UITableViewCell的定制。
以前可以直接繼承UITableViewCell然后drawRect;
現在不行了,現在的UITableViewCell包含了一個scrollView,你重繪了UITableViewCell將會被這個scrollView遮住而完全沒法顯示.
解決思路:
- (UITableViewCell?*)tableView:(UITableView?*)tableView cellForRowAtIndexPath:(NSIndexPath?*)indexPath
{
UITableViewCell?* cell = [[[UITableViewCellalloc]?initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:nil]?autorelease];
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支持一些新的行為:可以選擇音頻輸入的首選項,包括來自內置麥克風的音頻;支持多通道的輸入和輸出
轉載于:https://www.cnblogs.com/yswdarren/p/3605292.html
總結
以上是生活随笔為你收集整理的IOS7 开发注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: autocad.net中ResultBu
- 下一篇: 羊群过河问题