我有一个看起来像这样的结构:
白色背景是一个UIVIEw,它充当UIScrollVIEw中的容器(获取滚动视图以构建其自己的内容大小的典型设置,以便它根据容器视图正确滚动).
tableVIEw 1和tableVIEw 2需要具有动态的高度.我不希望它们滚动,所以我需要将它们的帧高度设置为等于它们的内容高度.
我有IBOutlets用于每个这些的高度约束,并且可以毫无问题地调整它们.
当我尝试调整容器视图的高度时出现问题.最后,我想不必弄乱它并让视图根据其内容自动调整大小,但这似乎不起作用(如果我忽略容器视图的高度,我会在IB中收到警告/错误关于约束).
如果我为容器视图的高度约束创建一个插座并设置它,我得到一个断言失败:
*** Assertion failure in -[UIVIEw layoutSublayersOfLayer:],/SourceCache/UIKit_Sim/UIKit-2935.137/UIVIEw.m:8803
我在vIEwDIDLayoutSubvIEws中进行约束调整,如下所示:
- (voID)vIEwDIDLayoutSubvIEws { self.orderItemtableVIEwHeightConstraint.constant = self.orderItemtableVIEw.contentSize.height - [self tableVIEw:self.orderItemtableVIEw heightForheaderInSection:0]; self.shipPingOptiontableVIEwHeightConstraint.constant = self.shipPingMethodtableVIEw.contentSize.height; self.scrollVIEwContainerVIEwHeightConstraint.constant = self.cardInfolabel.$bottom + 60;}
我认为问题是设置容器视图的高度约束导致一些递归或某事……
问题:
>在这种情况下,有没有办法让容器视图的高度根据其内容变得流畅?
>如果没有,我该如何以编程方式处理?我是在错误的地方改变约束吗?
感谢您的任何意见!
解决方法 好吧,好吧,只是在这里拍摄代码,但经过多次试验和错误,这似乎解决了断言失败并给出了所需的结果:- (voID)vIEwDIDLayoutSubvIEws { self.orderItemtableVIEwHeightConstraint.constant = self.orderItemtableVIEw.contentSize.height - [self tableVIEw:self.orderItemtableVIEw heightForheaderInSection:0]; self.shipPingOptiontableVIEwHeightConstraint.constant = self.shipPingMethodtableVIEw.contentSize.height; [self.vIEw layoutIfNeeded]; self.scrollVIEwContainerVIEwHeightConstraint.constant = self.cardInfolabel.$bottom + 60; [self.vIEw layoutIfNeeded];}
真的想让这个更有活力,但会在游戏中获得胜利!
希望这有助于其他人.
总结以上是内存溢出为你收集整理的ios – 具有自动布局的UIScrollView中的动态大小的UITableView全部内容,希望文章能够帮你解决ios – 具有自动布局的UIScrollView中的动态大小的UITableView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)