我想要一个方格网格,它们之间没有空格。目前,我使用自定义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
我需要摆脱第三和第四行以及第三和第四列之间的空格(见截图) 之后,会出现方形图像而不是只有颜色(边框不会改变),并且背景必须完全适合图像(所以如果所有正方形都被填充并且边框消失,它看起来像一个图像)
我知道这很大程度上取决于系统如何缩放图像等,但必须有办法做到这一点。
感谢您的帮助
答案 0 :(得分:0)
您只需将最小间距设置为0:
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 0.0;
}
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{
return 0.0;
}