關(guān)于一些細(xì)節(jié)
- UILabel
[label sizeToFit]; //label的大小自動根據(jù)文字適應(yīng)(僅限于自己手動創(chuàng)建的label)
autoresizing使用前的解釋:
UIViewAutoresizing是一個枚舉類型攻礼,默認(rèn)是UIViewAutoresizingNone,也就是不做任何處理睁宰。
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
各屬性解釋:
UIViewAutoresizingNone
不會隨父視圖的改變而改變UIViewAutoresizingFlexibleLeftMargin
自動調(diào)整view與父視圖左邊距智嚷,以保證右邊距不變UIViewAutoresizingFlexibleWidth
自動調(diào)整view的寬度咖摹,保證左邊距和右邊距不變UIViewAutoresizingFlexibleRightMargin
自動調(diào)整view與父視圖右邊距爹土,以保證左邊距不變UIViewAutoresizingFlexibleTopMargin
自動調(diào)整view與父視圖上邊距甥雕,以保證下邊距不變UIViewAutoresizingFlexibleHeight
自動調(diào)整view的高度,以保證上邊距和下邊距不變UIViewAutoresizingFlexibleBottomMargin
自動調(diào)整view與父視圖的下邊距胀茵,以保證上邊距不變
在這里說明一下社露,如果是經(jīng)常使用Storyboard/Xib設(shè)置autoresizing,那么轉(zhuǎn)變使用代碼設(shè)置autoresizing的話琼娘,容易出現(xiàn)理解錯誤問題峭弟。比如說UIViewAutoresizingFlexibleTopMargin赁濒,也許會被誤認(rèn)為是頂部距離不變,其實是底部距離不變孟害。這個解決辦法也很簡單,只需要把使用代碼和使用Storyboard設(shè)置autoresizing挪拟,它們是相反的挨务,只需要這樣去記就可以了。autoresizing組合使用:
也就是枚舉中的值可以使用|隔開玉组,同時擁有多個值的功能谎柄,可以針對不同的場景作不同的變化。例如:
UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin
意思是:view的寬度按照父視圖的寬度比例進(jìn)行縮放惯雳,距離父視圖頂部距離不變朝巫。
其它的組合類似,我這里就不一一列舉了石景。