我需要将collectionView
中的单元格设置为屏幕允许的宽度。
显然,itemSize
属性应该达到这个目的。
在我的示例中,我将宽度设置为400,但如何设置为用户屏幕的宽度?
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.sectionInset = UIEdgeInsetsMake(10, 10, 9, 10);
layout.itemSize = CGSizeMake(400, 150);
self.collectionView = [[NewsSummaryCollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
}
更新
仍然不够宽,右手边的下一个细胞仍然可以看到。
答案 0 :(得分:0)
集合布局具有对集合视图的引用,因此您应该使用它来设置项目的宽度(以及单元格的宽度)。将宽度设置为屏幕大小可能会大于集合,因此您不希望这样做。此外,您可以在边界更改时设置失效,以便布局知道是否需要更新项目。
答案 1 :(得分:0)
我找到了。希望它可以帮助别人。
UIView *rootView = [[[UIApplication sharedApplication] keyWindow]
rootViewController].view;
CGRect originalFrame = [[UIScreen mainScreen] bounds];
CGRect adjustedFrame = [rootView convertRect:originalFrame fromView:nil];
layout.itemSize = CGSizeMake(adjustedFrame.size.width, 150);