don*_*ile 6 iphone cocoa-touch objective-c nsstring
我知道有这个:
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
但由于CGSize总是具有相同的高度,并且不能适应任何缩小的文本或任何缩小的文本,因此CGSize并没有说明文本的高度.
示例:制作一个320 x 55点的UILabel并在其中放置一个loooooooooooooong文本.让标签缩小文本.惊喜:CGSize.height保持相同的高度,即使文本太小,你需要显微镜.
好吧,在我的脑袋撞到我的macbook pro之后,现在已经被打破了一半,唯一可以帮助的想法是讨厌的realFontSize.但字体大小是异食癖,我认为,它不是你在屏幕上得到的,不是吗?
当那个字体大小为10时,我的文字真的是10点最高吗?偶尔我尝试了一下,一旦文本有一个或一些延伸到下面的字符(就像y的尾部那样),它就会超出界限,整个文本大于10点.
那么如何在不留长胡须和一些医院经验的情况下计算单线uilabel的真实文本高度?
听起来好像在从该函数调用中获取实际字体大小后,您需要使用新的大小再次调用:
NSString* yourString = @"SomeString";
float actualSize;
[yourString sizeWithFont:yourFont 
             minFontSize:minSize 
          actualFontSize:&actualSize 
                forWidth:rectWidth 
           lineBreakMode:breakMode];
CGSize size = [yourString sizeWithFont:[UIFont fontWithName:fontName size:actualSize]];