如何找出当前 iPhone 屏幕的大小来动态设置 itemSize?

How to find out the size of current iPhone screen to set the itemSize dynamically?

我需要使 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];
}

Rest of the code

更新:

仍然不够宽,右手边的下一个单元格仍然可以看到。

集合布局引用了集合视图,因此您应该使用它来设置项目(以及单元格)的宽度。将宽度设置为屏幕尺寸可能大于集合,因此您不想这样做。此外,您可以在边界更改时设置失效,以便布局知道是否需要更新项目。

我找到了。希望对其他人有帮助。

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);