UICollectionView
内嵌有UIViewController
。要求是UICollectionView
的高度始终等于屏幕大小的一半。迄今为止所尝试的是:
override func viewWillAppear(_ animated: Bool) {
self.caCollectionView.frame.size.width = self.view.frame.size.width
self.caCollectionView.frame.size.height = self.view.frame.size.height / 2
}
这在构建和运行时似乎没有生效。 有什么遗失的吗? 请帮忙。提前谢谢。
添加了屏幕截图:粉红色区域为UIViewController
,白色区域为UICollectionView
答案 0 :(得分:2)
您是否还要移动底部视图?
override func viewWillAppear(_ animated: Bool) {
self.caCollectionView.frame.size.width = self.view.frame.size.width
self.caCollectionView.frame.size.height = self.view.frame.size.height / 2
self.pickAnotherView.frame.origin.y = self.caCollectionView.frame.origin.y+self.caCollectionView.frame.size.height
self.pickAnotherView.frame.height = self.view.frame.height-self.caCollectionView.frame.size.height
}
您可以在有约束力的故事板上执行此操作。
答案 1 :(得分:1)
始终在viewDidLayoutSubviews中更新帧并使用边界而不是帧。
喜欢
override func viewDidLayoutSubviews()
{
super.viewDidLayoutSubviews()
self.caCollectionView.frame.size.width = self.view.bounds.size.width
self.caCollectionView.frame.size.height = self.view.bounds.size.height / 2
}