我在tableview单元格中有一个带UITextfield的UITableViewController。如果我滚动表格视图,用户在文本字段中输入的数据将消失。我试图将文本字段数据添加到NSMutableArray但它仍然无法正常工作。请帮忙。
答案 0 :(得分:4)
当调用cellForRowAtIndexPath:
时,您返回的单元格必须完全填入您想要显示的数据。因此,如果单元格包含UITextfield,则需要将其text
属性设置为数据中该行的正确值。
当表格单元格从屏幕的顶部或底部消失时,UITableViewCell本身可以重复使用。 (滚动时,单元格会消失,新单元格会出现,但UITableView类会重新使用UITableViewCell对象。)在cellForRowAtIndexPath:
中,当您使用缓存单元格时,必须确保设置所有内容希望它显示有问题的行,否则你可能会在表中看到一些奇怪的行为。
这有帮助吗?
编辑:
以下是cellForRowAtIndexPath:
中使用的典型模式的示例。请注意dequeueReusableCellWithIdentifier:
的使用。该方法返回先前分配但未使用的UITableViewCell(如果有)。进一步注意,如果没有返回缓存的单元格,代码会创建一个新的单元格并进行设置(使用与可能是行特定的任何内容无关的内容)。接下来,您可以根据需要为相关行设置单元格。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *SearchResultsCellIdentifier = @"SearchResultsCellIdentifer"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SearchResultsCellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:SearchResultsCellIdentifier] autorelease]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } // Your row-specific setup of the cell here // ... return cell; }
检查文档以了解有关这些方法的详细信息。 Apple和其他地方有很多关于如何实现tableViews的例子。