更改子视图中父视图上设置的约束

时间:2015-06-22 11:26:53

标签: ios swift delegates

我一遍又一遍地遇到以下问题,我正在寻找一个干净的解决方案来做到这一点。

我有多个视图:父视图(我的rootView,由我的基本UIViewController控制)和后代视图(UICollectionView中的UICollectionViewCell,它是我的rootView的子视图)。

UICollectionView的大小是相对于我的rootView的大小:在rootView的UIViewController中,我创建了UICollectionView,我还创建了约束(在rootView和UICollectionView之间)并将它们添加到rootView。 / p>

在UICollectionViewCell中点击按钮时,我想更改UICollectionView的大小。因此,我需要更改在rootView上设置的约束。

我被告知通过UIViewController的向下转换访问rootView的约束并以这种方式更改它们是脏的,因为有一个视图与其(父)控制器对话是错误的。

我应该如何在这种情况下采取行动?如何让控制器对视图做出反应,而视图不与控制器通信?正确方向上的一点很棒!

1 个答案:

答案 0 :(得分:0)

编辑完成后,听起来你在这里只有一个视图控制器。在那种情况下,生活是美好的。操纵控制集合视图的约束的逻辑属于视图控制器。

您希望将按钮水龙头传递给视图控制器,并让它处理调整集合视图的大小。

你是如何处理按钮水龙头的?