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

时间:2013-06-16 18:28:55

标签: uiscrollview uitextview

我有一个包含图像和单个文本视图的滚动视图。 textview的内容是动态的,高度可以是200,也可以是1500。我正在使用故事板,所以如何设置textview和scrollview内容大小以允许textview中的动态内容。我可以将它们设置为任意高的数字但是我最终在scrollview中有一堆空的空间。我希望图像和文本都能根据需要在屏幕上滚动和离开。

1 个答案:

答案 0 :(得分: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