iPhone:UITableView不呼吁重新加载数据后显示新数据
问题描述:
我的问题是,重新加载后,cell.textLabel不显示新数据。我可以看到cellForRowAtIndexPath
被叫,所以我知道reloadData
调用通过。如果我登录rowString
我看到正确的值,所以我设置标签文本的字符串是正确的。我究竟做错了什么?iPhone:UITableView不呼吁重新加载数据后显示新数据
我有以下代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
static NSString *RowListCellIdentifier = @"RowListCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:RowListCellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:RowListCellIdentifier]autorelease];
}
NSMutableString *rowString = [[NSMutableString alloc] init];
[rowString appendString:[[[rows objectAtIndex:row] firstNumber]stringValue]];
[rowString appendString:@" : "];
[rowString appendString:[[[rows objectAtIndex:row] secondNumber]stringValue]];
[rowString appendString:@" : "];
[[cell textLabel] setText:rowString];
[rowString release];
return cell;
}
- (void)viewWillAppear:(BOOL)animated {
[self.tableView reloadData];
[super viewWillAppear:animated];
}
答
尝试
cell.textLabel.text = $VALUE;
如果它不帮助,你确定你已经设置的tableView.delegate和tableView.dataSource?
答
尝试:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
}
你现在有什么是不寻常的建筑和可能阻止更新到用户界面。在设置视图的方法中,您希望在子类操作之前调用超类方法。您在将视图撕下的方法中颠倒顺序。除非你有一个自定义的超类,否则你通常不必调用super的viewWillAppear。
答
我打赌你的cell.textLabel
是以某种方式被重置为零。根据我的经验,我觉得将cellForRowAtIndexPath:
方法看作最容易,就好像它总是创建一个新的单元格一样。即使它正在重复使用一个小区,我也想为所有事情做好准备。
cell.textLabel
的头文件指出默认值为零。这意味着你想在改变它的文本属性之前给textLabel分配一个标签。
为了做到这一点,替代:
[[cell textLabel] setText:rowString];
有:
UILabel *label = [[UILabel alloc] init];//or initWithFrame:
label.text = rowString;
/* Insert your own customization here */
label.font = [UIFont boldSystemFontOfSize:13.0];
label.backgroundColor = [UIColor clearColor];
label.adjustsFontSizeToFitWidth = YES;
cell.textLabel = label;
[label release];
这不应该的问题。他只是使用旧的风格参考。 – TechZen 2010-05-12 21:58:02
是的,我相信因为表格显示数据,所以连接必须正常吗? – dbrasco 2010-05-12 22:00:00
其实它是代表和数据源被搞砸了,thx – dbrasco 2010-06-23 14:27:59