- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"inventoryItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.font = [UIFont systemFontOfSize:15];
}
UILabel *name = (UILabel *)[cell viewWithTag:1];
name.text = [NSString stringWithFormat:@"%@",inventoryItems[indexPath.row][@"Inventory_Name"]];
NSLog(@"%@", name.text);
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
我是Objective-C的初学者。我有一个名为UITableViewCell
的自定义UITextField
。 UITextField
标记为4.每次滚动时,UITextField
中的值都会消失并显示在不同的单元格中。我理解,这是因为dequeueReusableCellWithIdentifier
,其中单元格被重用。我已经研究了一下,发现将UITextField
存储在一个数组中并将它们重新加载到cellForRowAtIndexPath
中可能是最好的方法,但我在实现它时遇到了麻烦。一个例子是理想的,或者是解决这个问题的简单方法。谢谢。
答案 0 :(得分:0)
每次调用cellForRowAtIndexPath:
方法时,您都需要设置name
UILabel。
我想知道/认为inventoryItems[indexPath.row][@"Inventory_Name"]
的价值不是您所期望的吗?
而不是:
NSLog(@"%@", name.text);
尝试做:
NSLog(@"%@ SHOULD EQUAL %@", inventoryItems[indexPath.row][@"Inventory_Name"], name.text);
看看他们是否总是匹配?我怀疑你有一些&#34; <null>
&#34;隐藏在那里的价值观。