其实两个是一样的东西,要怪只能怪iPhone的Table太名不副实的。iPhone的Table只能显示一列,之所以还是叫Table,可能是为了延续Mac的NSTable控件,在进行列数限制的同时保留了原来的命名。仔细分析下两者有很多共同点以及细微区别。

共同点:

1 都适合大量数据的呈现

2 都利用了虚拟化技术,对一些除了视界的View(或者Cell)进行复用

3 都通过一定的模式(Android的Adapter以及iPhone的Delegate和DataSource)实现了视图和数据模型分离,可以轻松进行定制

 

不同点:

    Android List采用了Adapter实现了视图和数据模型的分离,iPhone Table通过DataSource和Delegate实现了视图、数据模型和逻辑处理的分离。从这点上看,iPhone Table可以说时分得更开。实际开发中感觉iPhone Table更多面,定制也更容易,具体原因是iPhoneTable“问”更多的问题。Android List和iPhone Table各自的对话模型如下:

p_w_picpath

图1 Android List的对话模型

p_w_picpath

图2 iPhone Table的对话模型