UITextView自动调整大小以调整单行iOS Objective -C

Posted

技术标签:

【中文标题】UITextView自动调整大小以调整单行iOS Objective -C【英文标题】:UITextView autoresize to adjust on a single line iOS Objective -C 【发布时间】:2018-06-08 16:05:34 【问题描述】:

我有一个名为 ratingtext 的标签,我希望它的内容通过在多行的情况下调整高度来适应单行文本。我如何在 ios Objective -C 中实现这一点。

我的标签:

如您所见,标签显示为 200/20,称为 ratingtext 标签。实际上这个值是 200/200 但是因为我用过

    self.ratingsText.textContainer.maximumNumberOfLines = 1;

由于标签宽度固定,最后一个 0 值被截断。如何自动调整宽度或高度以适应单行内容?

我的代码是:

self.ratingsText = [[UITextView alloc]initWithFrame:self.frame];
self.ratingsText.editable = NO;
self.ratingsText.text = @"000/00";

self.ratingsText.textContainer.maximumNumberOfLines = 1;

self.ratingsText.font = [UIFont systemFontOfSize:self.ratingSize weight: UIFontWeightRegular];
[self.ratingsText sizeToFit];
self.ratingsText.backgroundColor = UIColor.clearColor;
[self addSubview:self.ratingsText];

【问题讨论】:

你试过UILabel而不是UITextView吗? 【参考方案1】:

如果您使用情节提要,autoLayout 将扩展框架以匹配文本输入的大小。在属性检查器中,将宽度 textLabel “关系”设置为“小于或等于”。我在情节提要中给了文本标签 200/20,并在代码中将其设置为 200/200。自动布局负责其余的工作。

【讨论】:

【参考方案2】:

使用以下属性:

adjustsFontSizeToFitWidth
contentScaleFactor
minimumFontSize

【讨论】:

以上是关于UITextView自动调整大小以调整单行iOS Objective -C的主要内容,如果未能解决你的问题,请参考以下文章

xcode/iOS:自动调整大小以填充视图 - 显式帧大小是必不可少的吗?

UITextView 以编程方式调整大小,但随后设置为旧的故事板值。

在自定义 UITableViewCell 中调整 UITextView 的大小

iOS 故事板 - 自动布局不会调整子视图的大小和位置

UITextView 使用自动布局自动调整大小

UIPopOver、UITextView 和自动调整大小