【发布时间】:2014-11-15 09:43:05
【问题描述】:
我在 Interface Builder 中构建了详细视图,显示有关某些对象的信息和照片。因为信息的长度和照片的数量会有所不同,所以都嵌套在UIScrollView中。
照片在UICollectionView 中显示,但我需要始终显示所有包含的照片,因此我禁用了滚动并通过此函数(在完成渲染单元格时调用)动态更改UICollectionView 的Height 约束:
func resizePhotosCollectionView() {
photosCollectionViewHeightConstraint.constant = photosCollectionView.collectionViewLayout.collectionViewContentSize()
}
在此 UICollectionView 需要调整大小(通常通过设备方向更改)之前,它工作得很好。我正在尝试在函数中使用UIViewControllerTransitionCoordinator:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animateAlongsideTransition(nil) { context in
self.resizePhotosCollectionView()
}
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
}
但结果很不稳定,因为转换完成后Height 约束发生了变化。
有什么方法可以在视图转换后自动调整UICollectionView 的大小?如果没有,如何在过渡期间为Height 约束更改设置动画?
对目标 IOS 8 使用 Xcode 6.1。
【问题讨论】:
标签: ios swift uiscrollview uicollectionview autolayout