Iphone UITableViewController自定义单元格滚动性能

Iphone UITableViewController自定义单元格滚动性能,iphone,uitableview,Iphone,Uitableview,所以我有一个UITableViewController。此表视图中的单元格具有以下uicontrol: 2 UILabels, one of which has a shadow and a clearColor background color. 1 Custom Progress view resized to be larger and with a different color 3 UIButtons 从功能上讲,他们完全按照他们应该做的去做。然而,我注意到,当我在设备上查看它

所以我有一个UITableViewController。此表视图中的单元格具有以下uicontrol:

 2 UILabels, one of which has a shadow and a clearColor background color.
 1 Custom Progress view resized to be larger and with a different color
 3 UIButtons
从功能上讲,他们完全按照他们应该做的去做。然而,我注意到,当我在设备上查看它时,滚动的性能会迅速下降,甚至在其他交互(比如按下一个按钮)的情况下,帧也会到处都是

所以我今天四处阅读,发现了推特人写的这篇文章,关于如何通过子类化UITableViewCell并自己绘制来实现快速滚动性能

这个例子运行得非常好,但是当我尝试调整它以使用我想要的配置时,我意识到他没有使用任何预定义的UI控件,而是手工绘制所有内容

虽然我可以看出这将是一种非常有效的方法,但在某种程度上,对于进度视图和按钮,甚至是我的一个标签来说,这都是一个问题


所以我的问题是:如果我想要我的滚动性能良好,我是否需要从头开始完全编写控件,或者有没有办法使用标准UI控件并获得良好的滚动性能?

好的,我会提出一些明显的建议,但要实现UIScrollView性能,您需要确保出列机制工作正常。我经常看到开发人员没有在IB中正确设置标识符,因此缺少UITableViewCell缓存的好处

如果要将自定义控件添加到单元格中,您仍然应该对UITableViewCell进行子类化,在init函数中添加控件,在LayoutSubView中布局控件,等等-就像任何其他视图一样。正如VdesmedT所说,请确保您正在通过出列机制使用单元格,这样您就不会在每次滚动操作中分配新的单元格。

从现在起,我根本不会对单元格使用IB。我正在使用默认单元格标识符,将控件添加为子视图,并手动定位它们。@DVG:在创建时手动定位,而不是在您将单元格出列后,对吗?这确实很有意义。目前,所有控件都在
cellforrowatinexpath
中分配,这意味着每次它抓住一个可重复使用的单元格时,它都会分配一堆标签并将它们推入其中,而不仅仅是设置这些控件应该显示的数据。今晚我将试一试,看看这是否有助于我的滚动表演。