在调整UITextView.frame的大小时,如何自动调整UITextView文本的大小?

时间:2014-08-01 22:03:21

标签: ios objective-c uilabel uitextview glyph

基本上我想要这个How do I size a UITextView to its content?但是倒退。也就是说,使UITextView中的文本调整到其框架,即使字体大小足以填充其边界框。

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

从更大的角度来看,我要做的是:

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

我尝试使用UILabel,但是当我使用sizeToFit时,它们会切断我的一些自定义字形(垂直),而UITextView却没有。

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

我使用了来自StackOverflow aksh1t

23621536解决方案#2

在我的用法中,我从一个返回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下测试