不少時候都須要依據用戶輸入的內容自動調整UILabel/UITextView的高度和寬度,特別是UINavigationController的標題,超過一行的時候默認就是「…」咱們但願他能換行表示,這樣就須要根據內容調整titleView的高度啦。直接貼sample代碼,高度和寬度能夠根據本身的須要調整。
UILabel Sample code
1
2
3
4
5
6
7
|
CGRect frame = CGRectMake(20, 0, 280,44);
CGSize labelsize = [titleLabel.text sizeWithFont:[UIFont boldSystemFontOfSize: 16.0f]
constrainedToSize:CGSizeMake(320, 44)
lineBreakMode:UILineBreakModeTailTruncation];
frame.size.width = labelsize.width;
frame.size.height = labelsize.height;
titleLabel.frame = frame;
|
UITextView Sample code
1
2
3
4
5
6
|
CGRect frame = noteTextView.frame;
CGSize size = [noteTextView.text sizeWithFont:noteTextView.font
constrainedToSize:CGSizeMake(280, 1000)
lineBreakMode:UILineBreakModeTailTruncation];
frame.size.height = size.height > 1 ? size.height + 20 : 64;
noteTextView.frame = frame;
|
UITextView是UIScrollView的子類,所以有contentSize屬性,也能夠按以下實現
1
2
3
|
CGRect frame = noteTextView.frame;
frame.size.height = noteTextView.contentSize.height;
noteTextView.frame = frame;
|