OStack程序员社区-中国程序员成长平台

标题: iphone - 获取 NSCollectionViewItem 的 frame.size [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 21:52
标题: iphone - 获取 NSCollectionViewItem 的 frame.size

我正在使用 SSToolkit/SSCollectionView,并且我有一个自定义的 SSCollectionViewItem,但我很难获得由 SSCollectionView 代表设置的该 View 的帧大小:

- (CGSize)collectionViewSSCollectionView *)aCollectionView itemSizeForSectionNSUInteger)section {
return CGSizeMake(280.0f, 280.0f);
}

这是正在初始化的项目:

#pragma mark - Initializer

- (id)initWithReuseIdentifierNSString *)aReuseIdentifier {
    if ((self = [super initWithStyle:SSCollectionViewItemStyleImage reuseIdentifier:aReuseIdentifier])) {
        if([aReuseIdentifier isEqualToString"featuredIdentifier"]) {
            NSLog(@"Frame: %f", self.frame.size.width);
            return self;
        } else {
            self.imageView.backgroundColor = [UIColor colorWithWhite:0.95f alpha:1.0f];
            return self;
        }

        self.imageView.backgroundColor = [UIColor colorWithWhite:0.95f alpha:1.0f];
    }
    return self;
}

NSLog(@"FRAME Width:%f", self.frame.size.width); 总是返回一个 0



Best Answer-推荐答案


这是预期的行为。所有 Collection View 项始终使用 CGRectZero 进行初始化,因为它们可以在具有不同项大小的部分中重复使用。

SSCollectionView 在项目显示之前自动调整它们的大小。如果需要根据项目的大小进行布局,则应实现 layoutSubviews

此外,您似乎正在尝试根据标识符进行不同的绘图。我强烈建议您为每个标识符创建一个不同的类,以保持内容简洁易懂。

关于iphone - 获取 NSCollectionViewItem 的 frame.size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419527/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4