所以我的 rootViewController 包含一个带有自定义 UICollectionViewCell 的 UICollectionView。我在单元格上有一个标签,标题不应该改变,我有一个多行标签组成单元格其余部分的主体。当我启动应用程序时,它会正确调用 sizeToFit 并且顶部对齐所有内容,因此它不会居中。我单击一个单元格并转到下一个视图,然后如果我单击后退按钮返回到 rootViewController,它会运行 viewWillAppear 方法并重新加载数据,但 sizeToFit 不起作用并且多行上的所有内容标签变得居中对齐。它仍然是多行,但如果只有几行,它位于标签的中心,看起来不太好。我怎样才能保持这个,所以它是一致的。我有一个左侧菜单,它将重新加载 rootViewController,它将再次正确定位标签,但是一旦我从 secondViewController 中点击后退按钮,它就不再对齐。有没有办法清除所有单元格并重新加载它们。我试过 [collectionView reloadData]; 在 viewWillAppear 中并且它不起作用,它当前在从 viewWillAppear 方法调用网络连接的 connectionDidFinish 结束时调用。任何帮助表示赞赏。它当前在从 viewWillAppear 方法调用网络连接的 connectionDidFinish 结束时调用。任何帮助表示赞赏。它当前在从 viewWillAppear 方法调用网络连接的 connectionDidFinish 结束时调用。任何帮助表示赞赏。
这是自定义 UICollectionViewCell 代码
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
[contentLabel setNumberOfLines:0];
[contentLabel sizeToFit];
}
根视图控制器
-(UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:
(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"LocationListCell";
LocationList *cell = [cv dequeueReusableCellWithReuseIdentifier:cellIdentifier
forIndexPath:indexPath];
[cell.titleBar setText:[value objectAtIndex:indexPath.row]];
NSArray *tempObject = [[NSArray alloc] initWithArray:[self getData:[key
objectAtIndex:indexPath.row]]];
NSMutableString *tempString = [[NSMutableString alloc] init];
for (int i = 0; i < [tempObject count]; i++)
{
[tempString appendString:[tempObject objectAtIndex:i]];
[tempString appendString:@"\r"];
}
//[cell.contentLabel sizeToFit];
//[cell.contentLabel setNumberOfLines:0];
[cell.contentLabel setText:tempString];
return cell;
}