使用表格视图将自定义单元格转换为滚动视图

时间:2015-04-09 17:06:46

标签: ios objective-c uitableview

我有一个像Facebook的新闻一样的列表,我的用户有很多新闻,我必须像Facebook那样向他们展示。

首先,我创建一个NSObject类来生成每个单元格的对象。然后我创建一个用这个对象类初始化的UIViewController。该控制器是每个对象的单元格。

-(id)initWithNewsObject:(NewsObject *)new Delegate:(id)delegate{
self=[super init];

if(self)
{

    _delegate=delegate;

    _new=[[NewsObject alloc]initWithNewsObject:new];


}
return self;}

所以我在主视图控制器中使用for循环创建新闻列表。

这是我的问题,列表结构中哪一个确保最佳性能?使用for循环或使用TableView列出单元格?

3 个答案:

答案 0 :(得分:1)

Tableview将会更好,因为您不必手动管理scrollView的内容大小,特别是如果您不需要任何缩放或水平平移支持。 Tableview还内置了一些漂亮的延迟加载,因此您不必为屏幕上加载的所有对象管理内存。

我认为使用具有可变单元格大小或自定义单元格的tableView绝对是可行的方法。

答案 1 :(得分:1)

放下表格视图

表视图将仅在需要时显示/隐藏/重新创建单元格,并且从设备到设备,它将自动处理这些单元格。如果您甚至尝试为自己的ScrollView执行此操作,则必须满足不同的设备大小,分辨率和方向。

如果您不为自己的ScrollView执行此操作,那么您将有很多视图只是放在内存中,而不是一个非常好的选择。

即使你成功完成了所有这些,恭喜你,你刚刚重新发明了轮子,你刚刚创建了自己的MyTableView而不是UITableView

答案 2 :(得分:1)

表格视图。

想象一下,用户继续滚动数百个“单元格”。您必须手动管理数百个视图控制器的内存,而iOS则通过表视图中的出列方法处理它们。

它会自动为您回收细胞,您可以根据细胞的类型(图像,文本,视频等)使内容大小不同。