前言
最近開發(fā)中富文本、圖文混排用的比較多狸棍,發(fā)現(xiàn)了一個小問題身害。UILabel
在文字布局上容易出現(xiàn)一行不顯示滿就換行的情況。查了半天資料終于找到了解決方法草戈。
未做任何處理的情況
UILabel *label = UILabel.new;
label.backgroundColor = [UIColor blueColor];
label.font = [UIFont boldSystemFontOfSize:13];
label.numberOfLines = 2;
label.textColor = [UIColor whiteColor];
label.text = @"Azazie Dora Dora JDK";
CGSize size = [label sizeThatFits:CGSizeMake(120, CGFLOAT_MAX)];
label.frame = CGRectMake(0, 100, 120, size.height);
[self.view addSubview:label];
效果圖:
nohandle.jpg
可以看到塌鸯,第一行還有很多空隙,但是第三個單詞就不顯示在第一行了猾瘸。
處理之后
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSAllowsDefaultLineBreakStrategy"];
[[NSUserDefaults standardUserDefaults] synchronize];
通過NSUserDefaults
設(shè)置NSAllowsDefaultLineBreakStrategy
屬性為No,系統(tǒng)就不會做適配了界赔。
效果圖:
handle.jpg
還有種比較笨的方法,就是把UILabel
換成UITextView
牵触,但是成本太高了淮悼。