首页 文章

UIScrollView,Autolayout和子视图

提问于
浏览
1

我遇到了autolayout的问题,似乎无法找到应该很容易实现的东西的答案 .

我有以下视图层次结构:

-UIScrollview
  -UIView
     - UILabel
     - UILabel
     - UILabel

标签上的前导/尾随约束使它们在更薄的设备上更高(iPhone 4s与iPhone 6) .

为了使UIScrollview正常工作,我需要在UIScrollView内部设置UIView的高度约束,以避免出现“模糊高度”警告 .

但是当在iPhone 4s上运行时,UIView不够高,无法保存其子视图 .

到目前为止,我唯一的解决方案是在UIView上创建对高度约束的引用,并在视图出现时更新高度约束:

-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
    self.contentHeight.constant =self.lastLabel.frame.origin.y+ self.lastLabel.frame.size.height;
    [self.view layoutIfNeeded];
}

我认为必须有一种更好的方法来做一些如此简单的事情 .

我附上了一张图片来详细说明问题 .

感谢您的时间 .

enter image description here

根据下面的@Katty,使宽度/高度等于scrollview的superview导致更大的问题:

enter image description here

3 回答

  • 1

    在与另一位开发人员进行审核后,我发现了这个问容器中的底部子视图需要底部约束 . 这解决了这个问题 .

    感谢所有花时间帮助解决问题的人 .

    enter image description here

  • 1

    您正在使用的视图层次结构是正确的 . 基本上您需要做的是在子视图中(在Scrollview内)您需要对齐自动布局w.r.t. scrollview的top,bottom,leading和trailing,需要为子视图提供Equal Height,这基本上计算了scrollview的内容大小 .

  • 1

    设置拖尾前导顶部相对于UIScrollView和Height以及使用具有主视图的命题比率的固定设置

    首先设置等高和宽度然后设置命题乘数 . 跳过那个图像可以帮助你理解我试图解释你的内容 .

    Here is the image that will help to understand

相关问题