Я хочу сетку квадратов без пробелов между ними. В настоящее время я использую пользовательский UICollectionViewLayout:Как создать сетку квадратов без пробелов между ними?
class BoardViewLayout: UICollectionViewLayout {
override func collectionViewContentSize() -> CGSize {
return self.collectionView!.frame.size
}
override func layoutAttributesForItemAtIndexPath(indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes? {
let boardSize = Int(sqrt(Double(self.collectionView!.numberOfItemsInSection(0))))
let index = indexPath.row
let size = self.collectionView!.frame.width/CGFloat(boardSize)
let xIndex = CGFloat(index%boardSize)
let yIndex = CGFloat(index/boardSize)
let attributes = UICollectionViewLayoutAttributes(forCellWithIndexPath: indexPath)
attributes.frame = CGRect(origin: CGPointMake(size*xIndex, size*yIndex), size: CGSizeMake(size, size))
return attributes
}
override func layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
var attributesArray = [UICollectionViewLayoutAttributes]()
for i in 0..<self.collectionView!.numberOfItemsInSection(0) {
attributesArray.append(self.layoutAttributesForItemAtIndexPath(NSIndexPath(forItem: i, inSection: 0))!)
}
return attributesArray
}
}
Это выглядит следующим образом: screenshot of the result
Мне нужно избавиться от пробелов между третьей и четвертой строки и третьей и четвертой колонке (см скриншот).
Позже будут отображаться квадратные изображения, а не только цвета (границы не изменятся), и будет фон, который должен идеально подогнать изображения (так что это выглядит как одно изображение, если все квадраты заполнены и границы исчезают)
Я знаю, что это сильно зависит от того, как система масштабирует изображения и т. Д., Но должен быть способ сделать это.
Спасибо за помощь
Уже ответил в http://stackoverflow.com/questions/ 17229350/cell-spacing-in-uicollectionview/23542017 # 23542017 – cynicaljoy