Ширина / высота моего UICollectionView
соответствует всему доступному пространству.
Я хочу отобразить две ячейки в одной строке (два столбца)
Таким образом, ширина одной ячейки должна составлять половину ширины UICollectionView
(collectionView.frame.width / 2
)
Итак, я программно изменяю ширину ячейки в функции UICollectionViewDelegateFlowLayout
:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.frame.width / 2.0, height: 150)
}
Но визуально ширина ячейки намного больше, чем collectionView.frame.width / 2.0
(протестировано на симуляторе iPhone SE)
Так что экран занимает больше половины ширины экрана
Здесь я напечатал информацию о размерах:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath)
print("didSelectItemAt \(cell.frame.width), table width: \(collectionView.frame.width), item calc width: \(collectionView.frame.width / 2)")
}
didSelectItemAt ширина ячейки 187,5, ширина таблицы: 375,0, полуширина:
187,5
Почему это происходит?
Существует также проблема с полями, но сначала я должен решить эту проблему
Обновление
Хотя он отлично работает с симулятором iPhone 6s (я отредактировал изображение, чтобы поместить два элемента в первый ряд, чтобы проверить, подходят ли они):
Так что же не так с iPhone SE?
Я не хочу выяснять, что может быть такая же проблема и с другими iPhone или iPad