UILineBreakMode导致的换行异常
label.lineBreakMode默认为UILineBreakModeTailTruncation,但是这种默认行为在中英文混排时会导致问题。
label.text = @"训练场回复:dddddddddddddddddddddddddddddd",竟然从‘复’开始这行,简直醉了。
label.lineBreakMode = UILineBreakModeCharacterWrap;解决了这个问题
intrinsicContentSize
理解intrinsicContentSize,计算label高度就没有什么问题了。
包含'\n'
label.text=@"我要\n换行".txt
使用UILabel显示字符串时,可以在字符串中包含“\n”等,label显示会读取到这个内容,实现换行,但是,换行的内容要想可见,必须,设置label的numberOfLines,让它的行数足够显示。
UILabel * label = [[UILabel alloc]init];
label.text = @"照片\n选择";
label.numberOfLines=0;
多行向下文字偏移
UILabel默认竖直居中,在多行时文字向下偏移是因为UILabel设置的高度(frame.size.height),高于其实际需要的高度(intrinsicContentSize.height).