標籤:
1 擷取IOS裝置螢幕資訊
CGSize iOSDeviceScreenSize = [UIScreen mainScreen].bounds.size; NSString *s = [NSString stringWithFormat:@"%.0f x %.0f", iOSDeviceScreenSize.width, iOSDeviceScreenSize.height];
擷取裝置資訊判斷是否是ipone-判斷橫屏還是豎屏-判斷裝置型號
屬性userInterfaceIdiom是枚舉類型
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) { if (iOSDeviceScreenSize.height > iOSDeviceScreenSize.width) {//豎屏情況 if (iOSDeviceScreenSize.height == 568) {//iPhone 5/5s/5c(iPod touch 5)裝置 NSLog(@"iPhone 5/5s/5c(iPod touch 5)裝置"); } else if (iOSDeviceScreenSize.height == 667) {//iPhone 6 NSLog(@"iPhone 6 裝置"); } else if (iOSDeviceScreenSize.height == 736) {//iPhone 6 plus NSLog(@"iPhone 6 plus 裝置"); } else {//iPhone4s等其它裝置 NSLog(@"iPhone4s等其它裝置"); } } if (iOSDeviceScreenSize.width > iOSDeviceScreenSize.height) {//橫屏情況 if (iOSDeviceScreenSize.width == 568) {//iPhone 5/5s/5c(iPod touch 5)裝置 NSLog(@"iPhone 5/5s/5c(iPod touch 5)裝置"); } else if (iOSDeviceScreenSize.width == 667) {//iPhone 6 NSLog(@"iPhone 6 裝置"); } else if (iOSDeviceScreenSize.width == 736) {//iPhone 6 plus NSLog(@"iPhone 6 plus 裝置"); } else {//iPhone4s等其它裝置 NSLog(@"iPhone4s等其它裝置"); } } }}
2 豎屏中狀態列20點,導覽列44點,標籤欄49點。一般內容視圖圖片大小就能設計出來了。
1)傳統布局:為了保證豎屏和橫屏都能顯示控制項,需要設定控制項和螢幕之間的距離是絕對距離。view中的Autosizing屬性設定。
模擬器旋轉螢幕是command + 左右箭頭
2)AutoLayout布局:constraint定義了控制項和視圖之間的關係 只能解決介面差別小的情況
對齊:建立置中和對齊約束
Pin:建立距離和位置相關約束 constrain to margins 對邊緣的約束,一般不選中
通過約束的屬性偵測器修改
3 Size Class與ios 8多螢幕適配
Compact 緊湊<Any<Regular 正常
wCompact|hCompact 適用於除5.5寸iphone外所有iphone的橫屏情況
wRegular|hCompact 適用於5.5寸iphone橫屏情況
wCompact|hAny wCompact|hRegular 適用豎屏情況
預覽功能:輔助編輯器-preview-main.storyboard 點擊+可以添加預覽裝置
由於豎屏和橫屏切換引起的布局問題快捷解決:Add Missing Constrains
4 螢幕滾動視圖UITextView和UIScrollView的適配問題要結合代碼去解決
frame屬性:視圖架構大小
contentSize屬性:內容視圖大小 CGSize類型
contentInset屬性:在內容視圖周圍添加邊框,一般為了放置工具列等,含top bottom left right四個分量
contentOffset屬性:內容視圖與螢幕滾動視圖座標原點的位移量 CGPoint類型 設定方法:-setContentOffset:animated:
*********
bounds(CGRect類型):frame和origin分量,這兩個分量的類型是CGSize和CGPoint
*********
結局布局問題一般過程是:先使用size class-一次性添加約束-再微調 反覆迭代
視圖布局時會回調-(void)viewDidLayoutSubviews方法 可以設定視圖
5 使用asset catalog 管理圖片:不同解析度的裝置使用不同的圖片
開啟image.xassets-點擊+選擇菜單-設定裝置-開啟圖片檔案夾拖拽圖片-在代碼或InterfaceBuilder中使用
1*是不同顯示屏 2*是4s Retina2*是5/5s/5c 3*是6/6p
IOS開發指南第四章 IOS8多解析度螢幕適配 學習