蘋果發佈iOS7以後,iOS7所有采用扁平化的界面,咱們的app界面在iOS7上出現了很大的改變,這包括UINavigationBar,UIButton,UIActionSheet,UITabBar等。如今我主要針對這幾個功能說明一下在iOS7上的兼容性。 1.UINavigationBar 在iOS7如下全部的UINavigationBar都採用擬物化的界面,給人的感受頗有立體感,可是在iOS7中全部的界面使用的扁平化的界面,這讓咱們的app在iOS7的系統上看起來不是那麼的協調。 把UINavigationBar變爲扁平化的就是加一個背景圖片 <ignore_js_op style="-ms-word-wrap: break-word;"> [self.navigationController.navigationBarsetBackgroundImage:navBackImage forBarMetrics:UIBarMetricsDefault]; <ignore_js_op style="-ms-word-wrap: break-word;"> 2.UIButton <ignore_js_op style="-ms-word-wrap: break-word;"> 在iOS7上出現模糊裝的,看起來不是很明顯, 修復辦法給 UIButton加上邊框,代碼以下: 這須要引用: #import <QuartzCore/QuartzCore.h> button.layer.cornerRadius=8; heightBtn.layer.borderWidth=1.0f; heightBtn.layer.borderColor=[UIColorlightGrayColor].CGColor; <ignore_js_op style="-ms-word-wrap: break-word;"> 3.UIActionSheet 在iOS7上若是在UIActionSheet中加上UIPickerView會顯示不徹底,緣由是在iOS7上顯示的高度不夠,它是相對與整個屏幕的位置定位的,因此應該修改UIActionSheet顯示的高度。 4.UITabBar 在iOS7中若是想隱藏UITabBar只是使用 self.tabBarController.tabBar.hidden = YES; 是會隱藏UITabBar,可是底部會留下陰影,也就是整個屏幕不會所有顯示,解決辦法是在self.hidesBottomBarWhenPushed = YES;當推送的時候把UITabBar隱藏掉就好了,而後你能夠從新設計UIView的大小等等。 四、UITableViewCell 在以前的版本中UITableViewCell的backgroundColor是透明背景的,可是在iOS7中是默認白色背景,若是在TableView後面加入背景的應用要注意了,在建立UITableViewCell的時候把backgroundColor設置爲[UIColor clearColor]; 五、UIViewController的變化 以前的版本中UIViewController中的view在顯示後會自動調整爲去掉導航欄的高度的。這樣咱們擺放控件的時候就會在導航欄的下面顯示。可是在iOS7中UIViewController的wantsFullScreenLayout已經被捨棄了,再也不提供此屬性,全部的UIViewController建立後默認就是full Screen的,所以若是帶導航欄的應用界面中的部分控件會被導航欄覆蓋掉。 要解決這中狀況可使用iOS7中UIViewController新增的屬性extendedLayoutIncludesOpaqueBars和edgesForExtendedLayout來解決。其中這個屬性指定了當Bar使用了不透明圖片時,視圖是否延伸至Bar所在區域,默認值時NO。而edgesForExtendedLayout則是表示視圖是否覆蓋到四周的區域,默認是UIRectEdgeAll,即上下左右四個方向都會覆蓋,那麼爲讓頂部不進行延伸到導航欄覆蓋的區域,咱們能夠把頂部區域延伸去掉。實現代碼以下: self.extendedLayoutIncludesOpaqueBars = NO; self.edgesForExtendedLayout = UIRectEdgeBottom | UIRectEdgeLeft | UIRectEdgeRight; 六、沒法再獲取MAC地址 在iOS7中沒法再獲取到MAC地址了,他會固定返回02:00:00:00:00:00。在以前版本中使用MAC地址的應用可能要作調整了。 七、iOS7(Xcode5)中隱藏狀態欄的方法 將4s的系統升級到了扁平化的iOS7,如絲般順滑,比預想的要完美。不少不經意間發現的小細節讓人發出雅典娜之驚歎。因此狗日的不要相信那些媒體的胡說八道,那些人根本就沒有體會過即能寫出各類奇談怪論。紙上得來終覺淺,絕知此事需躬行。推薦升級安裝。 而後是Xcode5,整個界面也是衝着扁平化的方向,怎麼說呢,簡約而不簡單。總之就是更好用了。趕忙將之前寫的一些app放Xcode5下編譯,很多問題出來了。 首當其衝就是界面上的狀態欄了,iOS7默認程序就是全屏(fullscreen)模式,用半透明的方法將狀態欄擋在後面,感受有點怪怪的 要幹掉它還真不容易,在iOS7以前,咱們能夠這樣幹: [[UIApplication sharedApplication] setStatusBarHidden:YES]; 可是如今無效了,怎麼解?Google了一下,這麼幹:在app的plist文件中,添加兩個屬性:UIStatusBarHidden和UIViewControllerBasedStatusBarAppearance,顧名思義,就是用來設置狀態欄的,如圖所示: <ignore_js_op style="-ms-word-wrap: break-word;">
|