我有一个包含UICollectionView的应用。
首次出现collectionView时,可以看到每个单元格中包含的图像从CGRectZero的大小调整为最终大小。
所有单元格imageView都在storyboard中显式调整为常量高度和宽度,并在sizeForItemAtIndexPath中明确调整单元格大小。
只是想知道是否有其他人遇到过此问题并找到了解决方案。根据我的阅读,我需要添加layoutIfNeeded。我已经尝试将此添加到viewWillAppear但它没有帮助。任何帮助将不胜感激。
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Image Cell", forIndexPath: indexPath) as! ImageCollectionViewCell
cell.messageDateLabel.text = dateString
if let imageData = message.image {
let messageImage = UIImage(data: imageData)
cell.messageImage = messageImage
}
return cell
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let size = CGSizeMake(self.chatCollectionView.frame.size.width, Storyboard.ImageHeight)
return size
}
collectionView在containerView中显示如下:
override func viewDidLoad() {
super.viewDidLoad()
imageCollectionViewController = self.storyboard?.instantiateViewControllerWithIdentifier("imageCollectionViewController") as? imageCollectionViewController
self.imageCollectionViewController!.view.translatesAutoresizingMaskIntoConstraints = false
self.addChildViewController(self.imageCollectionViewController!)
self.addSubview(self.imageCollectionViewController!.view, toView: self.containerView)
self.tabBarController?.tabBar.hidden = true
}