如何在iPhone中动态更改UITextView中文本的字体大小

问题描述 投票:2回答:1

我有一个固定大小的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.即每行只有一个单词。

iphone
1个回答
4
投票

设置隐式字体大小,假设您可以使用最大的可接受字体。然后,使用以下方法测量文本大小:

CGSize size = [text sizeWithFont:[UIFont systemFontOfSize: currentSize] constrainedToSize: maxTextSize lineBreakMode:UILineBreakModeWordWrap];

如果您获得的大小超出可接受的范围,请调整字体大小并重复。 maxTextSize应该是您的UITextView的大小。

© www.soinside.com 2019 - 2024. All rights reserved.