带有Collection单元的UIImageViews在viewDidLoad()上大小不正确

时间:2018-07-17 15:42:34

标签: ios swift uicollectionview

使用UICollectionView制作日历屏幕,并使用嵌套的UIImageViews来动态覆盖屏幕的宽度。单元格在此函数中(在Cell类内部)格式化:

func formatCell(imageId: Int){

    let width = self.frame.width * 2 / 3
    let height = self.frame.height * 2 / 3
    //print("width: \(width)")
    imageView.frame = CGRect(x: self.frame.width / 6, y: self.frame.height / 6, width: width, height: height)
    if imageId == 0 {
        imageView.image = //image
    }
    else if imageId == 1 {
        imageView.image = //image

    }
    else if imageId == 2{
        imageView.image = //image
    }
    imageView.contentMode = .scaleAspectFit
}

最初加载屏幕时,图像不会缩小到适当的尺寸。每当创建新的单元格时,cellForRowAt都会调用formatCell。为了实现冗余,viewDidLoad还为collectionView中的每个单元格调用cell.formatCell()。此外,当屏幕旋转或应用程序展开到该视图时,将为每个单元格调用formatCell()。在后两种情况下,ImageView会调整为适当的大小。如果我旋转回到初始位置,则图像视图的大小正确,而不是初始的错误大小。我希望在屏幕加载时对单元格进行格式化。

0 个答案:

没有答案