我遇到了UICollectionReusableView的一个非常奇怪的问题。我的页脚显示正确,但问题出在我的标题上。
我的标头是UICollectionReusableView的子类,包含:
两个标签都以相同的方式初始化,并且在正确调用的initWithFrame方法中具有非常相似的属性。
以下是一个示例代码部分:
- (id)initWithFrame:(CGRect)frame
{
if((self = [super initWithFrame:frame]))
{
self.backgroundColor = [UIColor whiteColor];
titleLabel = [[UILabel alloc] initWithFrame:CGRectInset(frame, 10, 0)];
titleLabel.font = [UIFont boldSystemFontOfSize:24];
titleLabel.textColor = [UIColor blackColor];
titleLabel.backgroundColor = [UIColor clearColor];
[self addSubview:titleLabel];
dotCountLabel = [[UILabel alloc] initWithFrame:CGRectMake(2 * frame.size.width / 3 - 5, 8, frame.size.width / 3, frame.size.height)];
dotCountLabel.textAlignment = NSTextAlignmentRight;
dotCountLabel.textColor = [UIColor blackColor];
dotCountLabel.backgroundColor = [UIColor clearColor];
[self addSubview:dotCountLabel];
}
return self;
}
显示第二个标签没有任何问题,但奇数索引部分中的第一个标签显示在下一部分的标签顶部。对于任何希望了解如何创建这些视图的视图:
SaveHeader *header = (SaveHeader *)[collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"saveHeader" forIndexPath:indexPath];
Pattern *pattern = [saveModel.savedPatterns objectAtIndex:indexPath.section];
header.titleLabel.text = pattern.title;
header.dotCountLabel.text = [NSString stringWithFormat:@"%i dots", pattern.dotCount];
return header;
我以前曾经使用过很多次,但我从来没有碰到过这样的事情。任何人都知道为什么会发生这种情况以及如何解决这个问题?另请注意,我已通过它运行调试器,数据对象返回正确的数据。我使用的是iOS 7.1。
答案 0 :(得分:1)
在initWithFrame调用之前,将您要初始化的CGRect存储到变量中并进行检查。仔细观察价值观。你可能会在那里发现你的错误。祝你好运!