答案 0 :(得分:1)
为每个屏幕设置CollectionViewCell大小动态。你可以试试这样的......
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return CGSizeMake(_myCollection.frame.size.width/2-13, _myCollection.frame.size.width/2-13);
}
答案 1 :(得分:1)
它适用于4.7英寸及以上的iPhone屏幕尺寸,因为它们的宽度足以显示两个单元格(默认宽度)。
您应该做的是确定要执行的单元大小:
来自collectionView(_:layout:sizeForItemAt:)协议的UICollectionViewDelegateFlowLayout方法。如下:
// don't forget to conform to UICollectionViewDelegateFlowLayout protocol:
class ViewController: UIViewController, UICollectionViewDelegateFlowLayout {
//...
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let screenWidth = UIScreen.main.bounds.width
// if you want to let the cell to be a square,
// you should let the height equals to the width
// or you can -of course- set the deired height
return CGSize(width: screenWidth / 2, height: screenWidth / 2)
}
// ...
}
通过实现此功能,无论设备屏幕大小如何,单元格宽度都将是屏幕的一半。
备注:确保集合视图的最小空格为零:
同样,检查this Q&A可能对您的情况有用。
希望这会有所帮助。