我有一个带有xib的UITableViewCell的子类,我想用它作为我的表视图单元格。我需要逐个单元地修改单元格的属性。这是我的代码。 NSLog显示属性已正确更改,但是当我运行应用程序时,usernameLabel与xib文件中的占位符保持一致。我很感激任何帮助和节日快乐。
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
static NSString *simpleTableIdentifier = @"SimpleTableItem";
// ActivityCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
LiveCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
// Load the top-level objects from the custom cell XIB.
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"LiveCell" owner:self options:nil];
// Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
cell = [topLevelObjects objectAtIndex:0];
}
if (dataLoaded == YES) {
cell.usernameLabel = [[UILabel alloc] init];
NSLog(@"Data Cell Loaded");
PFObject *liveObject = [tableData objectAtIndex:indexPath.row];
cell.usernameLabel.text= liveObject[@"Name"];
NSLog(@"Name Label: %@", cell.usernameLabel.text);
return cell;
}
else {
return cell;
}
}
答案 0 :(得分:2)
考虑以下代码:
cell.usernameLabel = [[UILabel alloc] init];
NSLog(@"Data Cell Loaded");
PFObject *liveObject = [tableData objectAtIndex:indexPath.row];
cell.usernameLabel.text= liveObject[@"Name"];
NSLog(@"Name Label: %@", cell.usernameLabel.text);
return cell;
你做了一个标签并设置了它的文字,但是那又怎样?你永远不会把它放入细胞的界面。所以标签出现了,它的文字被设置了,然后它就会在一阵烟雾中消失。
如果单元已经在其接口中一个usernameLabel
,那么将它替换为不在接口中的新单元是错误的。如果它还没有usernameLabel
,那么您需要将这个放在界面中。无论哪种方式,这段代码都很愚蠢。