【问题标题】:sizeWithFont: constrainedToSize: lineBreakMode: not working right when changing font sizesizeWithFont: constrainedToSize: lineBreakMode: 更改字体大小时无法正常工作
【发布时间】:2013-01-29 09:53:33
【问题描述】:

我遇到了一些 UITextViews 的问题。您可以选择更改我的应用程序中的字体大小,当您更改它时,它会重新加载内容并调整文本视图的大小,因为视图中有多个。我正在使用下面的代码来调整大小,但它有时会返回正确的高度,但是当我在应用程序中更改文本大小时,它似乎会崩溃并返回不正确的高度,并且 textviews 中的文本在底端。有人可以帮我吗?

int height = [tempTextView.text sizeWithFont:
[UIFont fontWithName:fontFamily size:fontSizeF] 
constrainedToSize:CGSizeMake(300, 10000) lineBreakMode:
NSLineBreakByWordWrapping].height;

【问题讨论】:

    标签: uiscrollview uitextview uifont sizewithfont


    【解决方案1】:

    我知道这是一个老问题和迟到的答案,但它仍然非常相关,

    此 sizeWithFont 方法现已弃用,此新方法效果最佳

    NSString *content = **Whatever your label's content is expected to be**
    CGSize maximumLabelSize = CGSizeMake(390, 1000);
    
    NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:13] forKey: NSFontAttributeName];
    
    CGSize newExpectedLabelSize = [content boundingRectWithSize:maximumLabelSize options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin attributes:stringAttributes context:nil].size;
    

    因此您可以将标签(或表格单元格等)调整为

    label.frame.size.height = newExpectedLabelSize.height;
    

    我希望这会有所帮助,干杯,吉姆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2022-01-21
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多