我有一个固定大小的UITextView说宽度和高度为150,150。
目的是展示当天的想法。请注意,尺寸需要保持不变,我无法改变它。
现在,思想字符串的长度因思想而异。我想要做的是改变文本字体的大小,以确保它在UITextView中不显示任何空格,如果长度很小或者如果它更大则不显示滚动。
那么如何根据思想字符串的长度来改变UITextView的字体。
以下代码有什么问题:
CGSize size;
BOOL run=TRUE;
CGSize txtViewSize = self.txt_tipView.frame.size;
while(run){
size = [self.txt_tipView.text sizeWithFont:[UIFont systemFontOfSize: currentSize] constrainedToSize:txtViewSize lineBreakMode:UILineBreakModeWordWrap];
if((size.width<=txtViewSize.width) && (size.height<=txtViewSize.height))
run = FALSE;
else
currentSize--;
}
self.txt_tipView.font = [UIFont fontWithName:@"Helvetica" size:currentSize];//[UIFont boldSystemFontOfSize:12];
TextView中文本的大小始终为60.这就是每行只有一个单词。
答案 0 :(得分:4)
设置隐式字体大小,假设您可以使用最大的可接受字体。然后,使用以下方法测量文本大小:
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize: currentSize] constrainedToSize: maxTextSize lineBreakMode:UILineBreakModeWordWrap];
如果您获得的尺寸超出了可接受的范围,请调整字体大小并重复。 maxTextSize 应该是UITextView的大小。