UITableview Scroll 擦除 UITableviewcell 内文本字段中的数据
我有一个 UITableViewController ,表视图单元格内有 UITextfield 。如果我滚动表视图,用户在文本字段中输入的数据就会消失。我尝试将文本字段数据添加到 NSMutableArray 但它仍然不起作用。请提供任何帮助。
I have a UITableViewController with UITextfield inside the tableview cells. If I scroll the table view, the user entered data in the textfields disappears. I tried to add the textfield data to a NSMutableArray but it still didn't work. Any help please.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当调用
cellForRowAtIndexPath:
时,您返回的单元格必须完全填充您想要显示的任何数据。因此,如果单元格包含 UITextfield,您需要将其text
属性设置为数据中该行的正确值。当表格单元格从屏幕顶部或底部消失时,UITableViewCell 本身就可以重复使用。 (当您滚动时,单元格消失,并出现新单元格,但 UITableView 类正在重用 UITableViewCell 对象。)在
cellForRowAtIndexPath:
中,当您获取要使用的缓存单元格时,您必须确保设置您希望它为相关行显示的所有内容,否则您可能会在表中看到一些奇怪的行为。这有帮助吗?
编辑:
这是
cellForRowAtIndexPath:
中使用的典型模式的示例。请注意 dequeueReusableCellWithIdentifier: 的使用。该方法返回一个先前分配但未使用的 UITableViewCell(如果有)。进一步注意,如果没有返回缓存的单元格,代码将创建一个新的单元格,并对其进行设置(使用与可能特定于行的任何内容无关的内容)。接下来,您可以根据需要为相关行设置单元格。检查文档以了解有关这些方法的详细信息。 Apple 和其他地方有很多关于如何实现 tableView 的示例。
When
cellForRowAtIndexPath:
is called, the cell you return has to be completely filled in with whatever data you want to show. So, if the cell includes a UITextfield, you'll need to set it'stext
property to the right value for that row in your data.When a table cell disappears off the top or bottom of the screen, the UITableViewCell itself becomes available for re-use. (As you scroll, cells disappear, and new cells appear, but the UITableView class is re-using the UITableViewCell objects.) In
cellForRowAtIndexPath:
when you get a cached cell to use, you have to be sure to setup everything you want it to show for the row in question, otherwise you might see some odd behavior in your table.Does this help?
EDIT:
Here's an example of the typical pattern used in
cellForRowAtIndexPath:
. Notice the use ofdequeueReusableCellWithIdentifier:
. That method returns a previously allocated but not in use UITableViewCell, if there is one. Notice further that if no cached cell is returned, the code creates a new one, and sets it up (with stuff that is independent of anything that might be row specific). Following that, you'd setup the cell as you need it for the row in question.Check the docs for specifics about these methods. There are LOTS of examples from Apple and elsewhere about how to implement tableViews.