我一次又一次地遇到以下问题,我正在寻找一个干净的解决方案来做到这一点。
我有多个 View :一个父 View (我的 rootView,由我的基本 UIViewController 控制)和一个后代 View (UICollectionView 中的 UICollectionViewCell,它是我的 rootView 的 subview )。
UICollectionView 的大小相对于我的 rootView 的大小:在 rootView 的 UIViewController 中,我在其中创建了 UICollectionView,我还创建了约束(在 rootView 和 UICollectionView 之间)并将它们添加到 rootView。
当点击 UICollectionViewCell 中的按钮时,我想更改 UICollectionView 的大小。因此,我需要更改在 rootView 上设置的约束。
有人告诉我,通过 UIViewController 的向下转换来访问 rootView 的约束并以这种方式更改它们是肮脏的,因为让 View 与其(父) Controller 对话是错误的。
遇到这种情况我该怎么办?如何在 View 不与 Controller 对话的情况下使 Controller 对 View 使用react?方向正确的一点就太好了!
最佳答案
编辑完成后,听起来您这里只有一个 View Controller 在运行。那样的话,生活就好了。操作控制 Collection View 的约束的逻辑属于 View Controller 。
您希望将按钮点击传递给 View Controller ,并让它处理调整 Collection View 的大小。
您如何处理按钮点击?
关于ios - 从 subview 中更改在父 View 上设置的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30978795/