我正在使用 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-推荐答案 strong>
这是预期的行为。所有 Collection View 项始终使用 CGRectZero 进行初始化,因为它们可以在具有不同项大小的部分中重复使用。
SSCollectionView 在项目显示之前自动调整它们的大小。如果需要根据项目的大小进行布局,则应实现 layoutSubviews 。
此外,您似乎正在尝试根据标识符进行不同的绘图。我强烈建议您为每个标识符创建一个不同的类,以保持内容简洁易懂。
关于iphone - 获取 NSCollectionViewItem 的 frame.size,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/11419527/
|