gpt4 book ai didi

swift - 如何为所有设备提供 sizeForItemAt indexPath 更好的解决方案?

转载 作者:行者123 更新时间:2023-11-30 10:48:27 25 4
gpt4 key购买 nike

我想给所有单元格大小以适合所有设备。这是索引路径中我的 Collection View 单元格 sizeForItem 的代码:

extension PersonListViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
// Cell item size depending on the device height
let height = self.collectionView.frame.height

// iPhone SE CollectionView Height
if height <= 455 {
return CGSize(width: 155, height: 174)
}
// iPhone 8 CollectionView Height
else if height <= 554 {
return CGSize(width: 182.5, height: 182.5)
}
// iPhone 8 Plus CollectionView Height
else if height <= 623 {
return CGSize(width: 202, height: 216)
}

...
// iPad Pro 12.9" 3th gen CollectionView Height
else if height <= 1227 {
return CGSize(width: 334, height: 340)
}
return CGSize(width: 500, height: 500)
}
}

它工作正常,所有设备都给我带来了合适的尺寸。但我想为我的代码提供更好的解决方案。我认为我在尺寸方面做错了。

最佳答案

尝试如下所示

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize {
if DeviceType.IS_IPAD{
return CGSize(width: (self.view.frame.width-60)/3 , height: (self.view.frame.width-60)/3);
}
return CGSize(width: (self.view.frame.width-60)/2 , height: (self.view.frame.width-60)/2);

}

关于swift - 如何为所有设备提供 sizeForItemAt indexPath 更好的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55251140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com