我一遍又一遍地遇到以下问题,并且正在寻找干净的解决方案来执行此操作。我有多个视图:一个父视图(我的rootView,由我的基本UIViewController控制)和一个后代视图(UICollectionViewCell在UICollectionView是我的rootView的子视图)。更改在子视图中父视图上设置的约束条件
UICollectionView的大小与我的rootView的大小有关:在创建UICollectionView的rootView的UIViewController中,我还创建了约束(在rootView和UICollectionView之间)并将它们添加到rootView。
当在UICollectionViewCell中点击一个按钮时,我想更改UICollectionView的大小。因此,我需要改变在我的rootView上设置的约束。
我被告知通过UIViewController的downcast访问rootView的约束,并以这种方式改变它们是很脏的,因为有一个视图回到它的(父)控制器是错误的。
我该如何应对这种情况?如何让控制器对视图做出反应而不会与控制器交谈?一个正确的方向将是伟大的!
你说:“我有多个视图:父视图和子视图是父视图的子视图。”你的意思是你有一个子视图**控制器**谁的视图是父视图**控制器的子视图?请编辑你的问题来澄清。 –
我相信这就是我的意思,是的。具体来说,我正在讨论一个collectionViewController,其视图放置在我的rootView中。 (该按钮位于我的collectionViewCell中,所以甚至有三个视图嵌套,但我想如果我理解原理,只要我能够将其转换为这种特定情况。) – chl
术语视图和视图控制器是**不* *可互换。 UIView是UIView的一个子类,在屏幕上显示内容和/或从用户收集信息。 'UIViewController'是管理一组视图的控制器对象。在提问时,请务必不要混用您的条款。 –