我希望解决设备上的一个像素问题。我正在设计一个类似下图的日历:
为此我使用了UICollectionViewCell。
问题是,如果我将宽度增加0.0000001个点,那么每行绘制的单元格数就会从7个变为6个。我也尝试过增加UIEdgeInset(0.00001), 但问题仍然存在。流程布局的属性已经设置适当。
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0,0,0,0); // top, left, bottom, right
}
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat collectionViewWidth = (CGRectGetWidth(collectionView.frame) / 7);
CGFloat collectionViewHeight = 48;
return CGSizeMake(collectionViewWidth, collectionViewHeight);
}
问题是,如果我将宽度增加0.0000001个点,那么每行绘制的单元格数就会从7个变为6个。我也尝试过增加UIEdgeInset(0.00001), 但问题仍然存在。流程布局的属性已经设置适当。
layout.minimumInteritemSpacing = 0.0f;
layout.minimumLineSpacing = 0.0f;
如何使单元格大小保持一致而不留下空白?单元格的实际宽度为53.571428571428569(375/7)。如果将该值四舍五入为53.58,则会得到以下视图