如何根据动态内容调整 textview 和 scrollview 内容大小

Posted

技术标签:

【中文标题】如何根据动态内容调整 textview 和 scrollview 内容大小【英文标题】:How do I resize a textview and scrollview content size based on dynamic content 【发布时间】:2013-06-16 18:28:55 【问题描述】:

我有一个包含图像和单个文本视图的滚动视图。 textview 的内容是动态的,它可以是 200 高,也可以是 1500 高。我正在使用情节提要,因此如何设置 textview 和 scrollview 内容大小以允许 textview 中的动态内容。我可以将它们都设置为任意高的数字,但最终在滚动视图中会出现一堆空白空间。我希望图像和文本都可以根据需要在屏幕上滚动和滚动。

【问题讨论】:

【参考方案1】:

你会使用约束。这是我如何使用滚动视图进行操作的示例。使用 textview 它是可滚动的,并且不需要您设置内容大小,您只需将内容放入其中。如果您想控制 uitextview 的可视区域,则需要根据您拥有的文本数量、字体和使用的间距将其调整为您认为合适的范围。

    NSDictionary *viewsDic = @
        @"image":image,
        @"text": text,
        @"lable":label,
        @"someview":someview,
        @"anotherview":anotherview;

    [someview addConstraints:
        [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[image(320)]|"
                                                options:0
                                                metrics:0
                                                  views:viewsDic]];
    [someview addConstraints:
        [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[image]|"
                                                options:0
                                                metrics:0
                                                  views:viewsDic]];
    [someview addConstraints:
        [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-14-[label]"
                                                        @"[text(<=200)]"
                                                options:0
                                                metrics:0
                                                  views:viewsDic]];
    [someview addConstraints:
        [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-22-[txtDollarAmountFront(==37)]"
                                                options:0
                                                metrics:0
                                                  views:viewsDic]];
    [someview addConstraints:
        [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-19-[label]"
                                                options:0
                                                metrics:0

【讨论】:

以上是关于如何根据动态内容调整 textview 和 scrollview 内容大小的主要内容,如果未能解决你的问题,请参考以下文章

根据 textView 调整单元格大小不起作用?

怎么让textView随着输入内容的改变动态改变宽和高

UITextView 和单元格根据 textview 的内容动态更新高度?

动态添加文本后Textview不调整大小?

如何让 UITextView 根据内容动态调整自身大小

如何根据内容动态调整 Twitter Bootstrap 模式的大小