OGeek|极客世界-中国程序员成长平台

标题: ios - 获取 UICollectionView 部分的框架 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 13:40
标题: ios - 获取 UICollectionView 部分的框架

如何在 UICollectionView 实例中获取整个部分的框架(CGRect 值)? 我知道 UITableView 有一个 rectForSection: 方法。我正在为 UICollectionView 寻找类似的东西。

我检查了 UICollectionViewFlowLayout 的文档,但找不到类似 rectForSection: 的任何内容。



Best Answer-推荐答案


到collectionView添加分类

  @implementation UICollectionView (BMRect)

- (CGRect)bm_rectForSectionNSInteger)section {
    NSInteger sectionNum = [self.dataSource collectionView:self numberOfItemsInSection:section];
    if (sectionNum <= 0) {
        return CGRectZero;
    } else {
        CGRect firstRect = [self bm_rectForRowAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:section]];
        CGRect lastRect = [self bm_rectForRowAtIndexPath:[NSIndexPath indexPathForItem:sectionNum-1 inSection:section]];
        return CGRectMake(0, CGRectGetMinY(firstRect), CGRectGetWidth(self.frame), CGRectGetMaxY(lastRect) - CGRectGetMidY(firstRect));
    }
}

- (CGRect)bm_rectForRowAtIndexPathNSIndexPath *)indexPath {
    return [self layoutAttributesForItemAtIndexPath:indexPath].frame;
}

@end

关于ios - 获取 UICollectionView 部分的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37616326/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4