使用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会调整为适当的大小。如果我旋转回到初始位置,则图像视图的大小正确,而不是初始的错误大小。我希望在屏幕加载时对单元格进行格式化。