Лучший и самый простой способ справиться с этим - сделать его квадратным, а не прямоугольным. в принципе имеют одинаковое значение для ширины / высоты, по моему мнению. Если это не поможет вам попытаться сделать это ниже, и одно небольшое изменение в вашем коде - это использовать границы вместо фреймов.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.bounds.width/5, height: collectionView.bounds.width/5)
}
также, если вы можете угадать разницу в размере между ними, вы также можете уменьшить это bounds.width/5 -10