1

问题是,我确实有一个包含 3 个部分的视图。

第一部分是一个简单的标题 - 始终相同的高度! 第二部分是一个简单的描述行——总是相同的高度!

现在问题是第三部分。它是动态计算子视图的viewContainer(每个子视图都有一个自定义控制器)。内容的高度是动态的,由从后端下载的一些文本信息引起的。所以有时我需要滚动才能阅读整个文本,有时不需要。

目前我正在这样做:

  • 计算特定文本的 UILabel 的大小。
  • 然后调整父视图的大小以适合 UILabel(如果更小)。
  • 然后调整我的3-Part-ViewController-View的滚动视图以适应其子视图。

具有动态内容的详细视图控制器:

    self.labelDescription.text = self.customData.descriptionText;
    [self.labelDescription sizeToFit];
    if(self.view.frame.size.height < (self.labelDescription.frame.size.height + self.labelDescription.frame.origin.y)) {
    CGRect newSize = CGRectMake(0,
                                0,
                                self.view.frame.size.width,
                                self.labelDescription.frame.size.height +
                                self.labelDescription.frame.origin.y);
    self.view.frame = newSize;
    }

添加和调整我的详细视图后调整滚动视图的大小:

[self addChildViewController:controllerCustomData];
[self.scrollView addSubview:controllerCustomData.view];    
CGRect newRect = CGRectMake(0,
                            self.viewElementDetailContentContainer.frame.origin.y,
                            controllerCustomData.view.frame.size.width,
                            controllerCustomData.view.frame.size.height);
controllerCustomData.view.frame = newRect;
self.scrollView.contentSize = CGSizeMake(self.scrollView.contentSize.width, newRect.origin.y + newRect.size.height);

所以我的问题是,有没有更简单的方法可以做到这一点?

4

1 回答 1

0

你可以创建一个方法来完成你需要的一切。您需要编写一次方法(可能是methodS)并使用它传递必要的参数。

于 2012-07-23T19:16:07.860 回答