在textview中包含文本的因素取决于哪些因素。我的textview的宽度是160像素,我使用下面提到的代码计算了传入文本的宽度,结果是157像素,但这个文本包含在3行......为什么会这样?
CGSize size = [myText sizeWithFont:textViewFont
constrainedToSize:textView.frame.size
lineBreakMode:UILineBreakModeWordWrap];
CGFloat textWidth = size.width;
我想将文本的宽度除以textview的宽度以获得行数。但计算返回1,而我可以看到在模拟器上的textview中有3行。
答案 0 :(得分:10)
- (CGSize)sizeWithFont:(UIFont *)font
constrainedToSize:(CGSize)size
lineBreakMode:(UILineBreakMode)lineBreakMode
如果字符串的大小受到作为参数给定的大小的约束,则计算字符串的大小,如果字符串对于给定的大小约束而言太长,则会被截断以适合。
要获得字符串的宽度,如果它在没有约束的情况下在一行上绘制,则使用:
- (CGSize)sizeWithFont:(UIFont *)font
注意:从iOS7开始
- (CGSize)sizeWithFont:(UIFont *)font
不推荐使用,而是使用:
- (CGSize)sizeWithAttributes:(NSDictionary *)attrs
答案 1 :(得分:1)
尝试将传递给该方法的大小的height
设置为巨大的。否则返回的大小将始终显示文本视图的实际高度(假设完整的字符串不适合给定的高度)。