ios - 从 subview 中更改在父 View 上设置的约束

标签 ios swift delegates

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

我有多个 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/

相关文章:

ios - 创建 firebase 聊天演示 : I want to upload user image but its give an error

android - Android、iOS 和黑莓操作系统之间的主要区别是什么?

objective-c - 使用 AVFoundation 捕获和播放新的媒体类型

ios - 从注释中单击按钮发送对象 swift 4

ios - 如何在 iOS 中测试可达性并重试连接?

c# - 共享一个类的离散匿名方法?

ios - 交互式过渡,如谷歌地图 (iOS)

swift - Swift 中的 optional 值是什么?

c# - 将带参数的函数传递给不期望任何参数的委托(delegate)

c# - 将任何委托(delegate)作为参数的构造函数