【问题标题】:How to make a UITextView text resize automatically when the UITextView.frame is resized?调整 UITextView.frame 大小时如何使 UITextView 文本自动调整大小?
【发布时间】:2014-09-25 04:40:21
【问题描述】:

基本上我想要这个How do I size a UITextView to its content?,但要倒退。也就是让UITextView里面的文字适应它的frame,也就是让字体足够大,可以填满它的bounding box。

应该没那么难! UILabel 有方法“adjustsFontSizeToFitWidth”,我正在为 UITextView 寻找类似的东西。

在更大的范围内,我想做的是:

绘制我创建的自定义字体的一个字形(不是字母,而是其他类型的符号:svg 图纸),并能够向其添加手势识别器(点击或拖动它)并能够调整它的大小。我想从某个字体大小开始,然后是 sizeToFit,然后能够调整该框架的大小并让字体自动决定适合该框架的字体大小。

我尝试使用 UILabel,但是当我调整大小时,它们会(垂直)切掉我的一些自定义字形,而 UITextView 不会。

感谢您的帮助! :)

【问题讨论】:

    标签: ios objective-c uilabel uitextview glyph


    【解决方案1】:

    我使用了来自 StackOverflow 的 aksh1t 解决方案 #2 23621536

    在我的使用中,我通过返回 NSDictionary 的 API 调用设置 UITextViews,然后调整字体大小以适应 UITextView:

            [_alertLine1TextView setText:[_alertResultsDictionary objectForKey:@"line1"]];
    
            CGFloat fontSize = 25.0;
            CGFloat minSize = 9.0;
            while (fontSize > minSize &&  [_alertLine1TextView sizeThatFits:(CGSizeMake(_alertLine1TextView.frame.size.width, FLT_MAX))].height >= _alertLine1TextView.frame.size.height ) {
                fontSize -= 1.0;
                _alertLine1TextView.font = [_alertLine1TextView.font fontWithSize:fontSize];
            }
    

    在 iOS 7.1.2 和 iOS 8.0 beta5 下测试

    【讨论】:

      猜你喜欢
      • 2011-02-28
      • 2014-01-18
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 2019-07-03
      • 1970-01-01
      相关资源
      最近更新 更多