Collectionview 的底部约束未在运行时更新
Posted
技术标签:
【中文标题】Collectionview 的底部约束未在运行时更新【英文标题】:Collectionview's bottom constraints not updated in runtime 【发布时间】:2016-11-24 06:01:18 【问题描述】:我正在使用带有 FlowLayout 的 collectionView。请找到以下图片。
图中,白色区域是collectionView。在运行时,红色视图可能会根据条件隐藏。所以 collectionView 将不得不向上移动。那不是问题。这按预期工作。但是当collectionView向上移动时,通过20像素的垂直间距约束连接到collectionView的'All Months'按钮不会向上移动。
我的要求是“所有月份”按钮必须在 collectionView 旁边 20 像素,即使 collectionView 在运行时更改其 y 位置或高度也是如此。
编辑: 我已将 ScrollView 的 contentView 向上移动,以向您展示“All Months”和“Next”按钮的约束。请检查以下图片
【问题讨论】:
ALL months
的其他限制是什么?
您能告诉我们添加到所有月份按钮的约束吗?
【参考方案1】:
在查看和编辑您的项目后,我正在更改整个答案,这里是我从您的项目中分叉的编辑链接:
https://github.com/subhajitregor/AutoLayoutTest
我改变的东西:
滚动视图中的内容视图,其高度限制优先级已更改为 250(低优先级),因为如果您的橙色视图被隐藏,它不会变短。
在你的viewWillAppear()
中我添加了self.view.layoutIfNeeded()
并注释掉了viewDidLayoutSubviews()
的内部代码(你可以根据需要重新打开代码)
我已根据需要检查了它及其工作。请检查我提供的链接中的项目并告诉我。
【讨论】:
它不工作。它抛出不等式约束歧义错误 您能否提供一个带有该特定视图滚轮的演示项目,然后我可以为您做。只需在 git 中上传或给我一个链接以下载演示项目,只需在情节提要中使用该控制器即可。 我已经上传了一个示例项目。请在此网址github.com/ManojEllappan/AutoLayoutTest.git 中找到相同的内容。我的要求是,如果我在第一页选择 Single Employee,则员工详细信息页面(橙色视图)应显示为故事板中的内容。如果我选择组员工,橙色视图应该被隐藏,其他视图应该相应地向上移动。 好的。谢谢。 当您旋转设备时,collectionview 的高度是恒定的,并且“All Months”按钮保持其“20px”位置以实现这一点,包括override func willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration: TimeInterval) if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) collectionViewHeight.constant = 220; else collectionViewHeight.constant = 120;
在您的视图控制器中,我已经更新了代码git 请参考它以了解它是如何工作的以上是关于Collectionview 的底部约束未在运行时更新的主要内容,如果未能解决你的问题,请参考以下文章