UIView Auto扩展高度以填补supporview的底部

时间:2016-03-10 18:45:12

标签: ios objective-c xcode swift swift2

A和B UIView都在scrollView中。正如您在图像中看到的那样,UIView B没有填充并适合5.5屏幕的底部。是否有任何解决方案可以自动增长UIView B以适应屏幕底部。 enter image description here

3 个答案:

答案 0 :(得分:0)

首先,如果你的观点有一个设定的大小,我建议你重新考虑将它们放在一个滚动视图中。

如果你有理由,那么自动执行此操作的最佳选择可能是添加约束,以便将ViewController视图的高度等同于A和B视图。

更灵活的解决方案是在ViewController代码中处理它,并引用视图的高度约束。类似的东西:

if (aViewHeightConstraint.constant + bViewHeightConstraint.constant) < desiredHeight {
    bViewHeightConstraint.constant += (aViewHeightConstraint.constant + bViewHeightConstraint.constant) - desiredHeight
    self.view.setNeedsLayout()
    self.view.layoutIfNeeded()
}

这是未编译的,但它应该让你走上正确的道路。

答案 1 :(得分:0)

根据视图或BottomLayoutGuide给出scrollView的底部约束,并将UIView B的底部约束赋予scrollview底部

答案 2 :(得分:-1)

我只是移除现有的高度约束,添加一个新的高度以匹配剩余空间

 let hightConstraint = getConstraint(viewFollowMe, constaintId: "constriantHeightFollowMe")

        if hightConstraint != nil {
            viewFollowMe.removeConstraint(hightConstraint!)

            let heightContraints = NSLayoutConstraint(item: viewFollowMe, attribute:
                .Height, relatedBy:.GreaterThanOrEqual , toItem: nil,
                attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0,
                constant: VIEW_HEIGT_BOTTOM)
            viewFollowMe.addConstraint(heightContraints)
        }