Я установил UICollectionView с FlowLayout, который не оставляет места между ячейками в вертикальном или горизонтальном направлениях.
У меня все работает, но между 2-м и 3-м столбцами есть нечетное 1px-пространство, и я понятия не имею, почему!? Я проверил, что разрыв 1px появляется как в iOS-симуляторе, так и на реальном устройстве. Кто-нибудь испытал это?
Мой UIViewController является делегатом/источником данных следующего вида:
class MyViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
Я выполнил необходимые функции для удаления любого интервала (и проверены с помощью операторов печати, которые они запускают), а также визуальное подтверждение ячеек, расположенных рядом друг с другом:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsetsZero
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
Наконец, я распечатал ширину возвращаемой ячейки (каждый квадрат цвета), чтобы убедиться, что она была (view.frame.width / 3)
или (320/3)
, которая равна 106.666667
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
var totalHeight: CGFloat = (self.view.frame.width / 3)
var totalWidth: CGFloat = (self.view.frame.width / 3)
println(totalWidth) // this prints 106.666666667
return CGSizeMake(totalWidth, totalHeight)
}