Iphone 具有按钮内存问题的自定义单元格

Iphone 具有按钮内存问题的自定义单元格,iphone,objective-c,uitableview,Iphone,Objective C,Uitableview,我有一个自定义单元格,它在表视图中包含一个按钮。该按钮用作切换,本质上是一个“复选框”,供用户勾选列表中的某些项目。我遇到了一个问题,这些表单元格中的按钮似乎共享了内存位置,这是dequeuereusablecellwithidentifier的结果。当按下一个按钮时,它也会在列表中每隔4或5个按钮按下一次 我将其更改为将方法中的单元格创建为数组,然后填充tableview。这对于我试图实现的目标非常有效,但是在处理大量行计数时会出现问题。tableview本身运行速度很快,但当有超过100行时

我有一个自定义单元格,它在表视图中包含一个按钮。该按钮用作切换,本质上是一个“复选框”,供用户勾选列表中的某些项目。我遇到了一个问题,这些表单元格中的按钮似乎共享了内存位置,这是dequeuereusablecellwithidentifier的结果。当按下一个按钮时,它也会在列表中每隔4或5个按钮按下一次

我将其更改为将方法中的单元格创建为数组,然后填充tableview。这对于我试图实现的目标非常有效,但是在处理大量行计数时会出现问题。tableview本身运行速度很快,但当有超过100行时,初始加载时间可能为3-4秒。创建单元格然后将其填充到tableview的迭代非常繁琐

还有哪些方法可以使用自定义单元格和按钮填充tableview,同时仍为其中的按钮保留唯一内存

任何帮助都将不胜感激


谢谢:)

您肯定不想改变单元格创建的工作方式-出于您所看到的原因,dequeuereusablecellwithidentifier是一件非常好的事情

解决方案是,您应该将按钮/复选框按下的结果存储在一个单独的数据结构中,就像一个充满NSNumber的NSArray一样。随着表格滚动和单元格被重用,您可以将复选框的状态重置为基于NSArray的任何状态


祝你好运

您肯定不想改变单元格创建的工作方式-出于您所看到的原因,dequeuereusablecellwithidentifier是一件非常好的事情

解决方案是,您应该将按钮/复选框按下的结果存储在一个单独的数据结构中,就像一个充满NSNumber的NSArray一样。随着表格滚动和单元格被重用,您可以将复选框的状态重置为基于NSArray的任何状态


祝你好运

作为后续行动。我实现了这个方法,它满足了我的需要。一般来说,应用程序的加载速度明显加快,运行更平稳。再次感谢!太好了!很高兴听你这么说。只是作为后续。我实现了这个方法,它满足了我的需要。一般来说,应用程序的加载速度明显加快,运行更平稳。再次感谢!太好了!很高兴听到这个消息。