iPhone 中单元格上的选择和取消选择按钮问题

发布于 2024-12-04 18:41:35 字数 233 浏览 2 评论 0原文

大家好,我的应用程序遇到了一个奇怪的问题。我的表格视图有一个自定义单元格,并且单元格上有一个按钮。我必须在该按钮上添加收藏夹和不收藏功能,因此,如果点击该按钮,它将使该单元格上的项目成为收藏夹,并且按钮将处于选定状态,如果用户再次点击它,它将被取消选择。就像复选框一样。 问题是,当我选择一个按钮时,也会选择第五个按钮。例如,如果我选择第 3 个索引上的按钮,那么它也会选择索引 8 上的按钮。

有人遇到过这个问题吗?有谁可以帮助我吗?

Hi guys i am having a strange problem in my application. i have a custom cell for my tableview and i have a button on my cell. i have to add favorites an unfavorites functionality on that button so if that button is tapped then it will make the item favorite on that cell and button will be in selected state and if user tap it again then it will be unselected. JUST LIKE CHECK BOX.
Problem that when i select one button then it 5th button also. for instance if i select button on 3rd index then it will select button on index 8 also.

any body faced this problem? Can any body help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何其悲哀 2024-12-11 18:41:35

问题是因为你正在重复使用你的细胞。因此,当您选择索引 0 处的单元格时,如果有 4 个可见单元格,那么当您向下滚动时,索引为 5 的单元格将重用索引 0 处的单元格,并且它也会被选中。

要解决该问题,您应该始终在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 中配置单元格,并将所有可以更改或单独的属性重置为默认值不同的细胞。

The problem is because of you are reusing your cells. So when you select cell at index 0 and if there are 4 visible cells then when you scroll down cell with index 5 will reuse cell at index 0 and it will be selected too.

To resolve that issue you should always configure cells in - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath and reset to default all properties that could be changed or are individual to different cells.

旧夏天 2024-12-11 18:41:35

我想这是因为 UITableViewCells 被缓存而发生的。这就是 -dequeueReusableCellWithIdentifier 的作用。在“cellForRowAtIndexPath”函数中,添加一些逻辑来根据该行的对象是否被收藏来设置按钮的状态。

I would imagine this is happening because the UITableViewCells are cached. That's what -dequeueReusableCellWithIdentifier does. In your "cellForRowAtIndexPath" function, add in some logic to set the button's state depending on whether or not the object for that row is favorited.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文