我现在已经有这个问题差不多一个星期了,这让我很生气。尽管取得了任何成功,我还是在Stackoverflow上阅读了很多主题。希望有人能帮帮我...
情况:
我有一个带有自定义UITableViewCell的UITableView,我从Nib加载。我在TableView的ViewDidLoad
中这样做:
[self.myTableView registerNib:[UINib nibWithNibName:@"DividendCell" bundle:nil] forCellReuseIdentifier:@"DividendReuseCell"];
自定义单元格包含一些标签,包括:issueName
和issueType
。
在cellForRowAtIndexPath
方法中,我像这样将可重复使用的单元格出列并分配标签:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
DividendCell *cell;
cell = [self.myTableView dequeueReusableCellWithIdentifier:@"DividendReuseCell" forIndexPath:indexPath];
dividend *div = [[[aAgendaItems objectAtIndex:indexPath.section] agendaItems] objectAtIndex:indexPath.row];
[cell setDiv:div];
return cell;
}
我想我不需要检查if (!cell)
,因为我使用自定义Nib,它将始终返回一个单元格。
但问题是看起来细胞没有出列。当我向下滚动时,我可以看到标签彼此重复。我不知道出了什么问题。我在其他课程中这样做了,没有任何问题。
非常感谢任何帮助! :)
编辑:屏幕截图,以更好地说明出现了什么问题:
编辑2 以下是DividendCell的代码 我使用这种方法来分配标签。
-(void)setDiv:(dividend *)div {
issueName.text = [[NSString alloc] initWithString:[[[div RelatedIssue] ShortName] capitalizedString]];
issueType.text = [[NSString alloc] initWithString:[div Description]];
issueCurrency.text = [[NSString alloc] initWithString:[div Currency]];
issueKoers.text = [[NSString alloc] initWithString:[super formatDouble:[div BrutValue]]];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
NSLocale *loc = [[NSLocale alloc] initWithLocaleIdentifier:@"nl_NL"];
[format setLocale:loc];
[format setDateFormat:@"dd MMM"];
exDividendDate.text = [[NSString alloc] initWithString:[format stringFromDate:[div ExDividendDate]]];
NSComparisonResult result = [[div PaymentDate] compare:[NSDate date]];
exPaymentDate.text = [[NSString alloc] initWithString:[format stringFromDate:[div PaymentDate]]];
if (result==NSOrderedAscending) {
[exPaymentDate setTextColor:[UIColor darkGrayColor]];
} else {
[exPaymentDate setTextColor:[UIColor blackColor]];
}
[loc release];
}
答案 0 :(得分:0)
如果您可以看到标签,则表示您的单元格正在出列。问题可能是您的细胞格式错误,标签的布局方式。如果您不使用自动布局,请确保未在您的nib文件中检查它,并确保通过将self.myTableview.rowHeight设置为正确的行高或使用委托方法返回正确的高度。如果您的标签显示在彼此之上,则可能是* .xib单元格中的自动布局问题。
答案 1 :(得分:0)
如果使用heightfortherowAtIndexPath
方法,我认为你没有给出适当的Cell高度。
修改:
您是否在单元格的.xib文件中设置了标识符?