【问题标题】:Resize UIView to fit its content调整 UIView 的大小以适应其内容
【发布时间】:2012-07-22 00:46:18
【问题描述】:

问题是,我确实有一个包含 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);

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

【问题讨论】:

    标签: iphone ios ipad uiview


    【解决方案1】:

    您可以创建一个方法来满足您的所有需求。您需要编写一次方法(可能是methodS)并使用它传递必要的参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      相关资源
      最近更新 更多