Iphone 获取SSCollectionViewItem的frame.size
我正在使用SSToolkit/SSCollectionView,我有一个自定义的SSCollectionViewItem,但我很难获得该视图的帧大小,该视图是由SSCollectionView委托设置的:Iphone 获取SSCollectionViewItem的frame.size,iphone,ios,sstoolkit,Iphone,Ios,Sstoolkit,我正在使用SSToolkit/SSCollectionView,我有一个自定义的SSCollectionViewItem,但我很难获得该视图的帧大小,该视图是由SSCollectionView委托设置的: - (CGSize)collectionView:(SSCollectionView *)aCollectionView itemSizeForSection:(NSUInteger)section { return CGSizeMake(280.0f, 280.0f); } 以下是要初始化
- (CGSize)collectionView:(SSCollectionView *)aCollectionView itemSizeForSection:(NSUInteger)section {
return CGSizeMake(280.0f, 280.0f);
}
以下是要初始化的项目:
#pragma mark - Initializer
- (id)initWithReuseIdentifier:(NSString *)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(@“帧宽度:%f”,self.FRAME.size.Width)代码>在大多数(所有?)Cocoa框架中始终返回0,直到稍后某个时候视图出现在屏幕上时才设置框架。如果你在一个视图中,我想这可能是最晚的移动到Windows
。在大多数情况下,视图几何图形应由ViewController在viewWillLayoutSubviews
或类似过程中进行设置,并且可以(应该)设置子视图以使用适当的“支柱和弹簧”(即自动重定尺寸任务
)。请参阅大多数(所有?)Cocoa框架的各个部分。,直到稍后视图出现在屏幕上时,才会设置框架。如果你在一个视图中,我想这可能是最晚的移动到Windows
。在大多数情况下,视图几何图形应由ViewController在viewWillLayoutSubviews
或类似过程中进行设置,并且可以(应该)设置子视图以使用适当的“支柱和弹簧”(即自动重定尺寸任务
)。请参阅的各个部分。这是预期的行为。所有集合视图项始终使用CGRectZero初始化,因为它们可以在具有不同项大小的节中重用
sCollectionView会在项目显示之前自动调整其大小。如果需要根据项目大小进行布局,则应实现layoutSubviews
此外,看起来您正在尝试根据标识符绘制不同的图形。我强烈建议您为每个标识符创建不同的类,以保持内容清晰易懂。这是预期的行为。所有集合视图项始终使用CGRectZero初始化,因为它们可以在具有不同项大小的节中重用
sCollectionView会在项目显示之前自动调整其大小。如果需要根据项目大小进行布局,则应实现layoutSubviews
此外,看起来您正在尝试根据标识符绘制不同的图形。我强烈建议您为每个标识符创建一个不同的类,以保持内容清晰易懂。在这种情况下,我还建议您使用collectionView:willDisplayItem:atIndexPath:
。就我个人而言,我更喜欢willMoveToSuperview:
而不是窗口变量。@SamSoffes,我不确定调用willMoveToSuperview
时几何体是否准备就绪;我错了吗?我喜欢你上面关于布局子视图的建议
;我忘了。在这种情况下,我还建议您使用collectionView:willDisplayItem:atIndexPath:
。就我个人而言,我更喜欢willMoveToSuperview:
而不是窗口变量。@SamSoffes,我不确定调用willMoveToSuperview
时几何体是否准备就绪;我错了吗?我喜欢你上面关于布局子视图的建议
;我忘了。