用类似UITableView的方式实现横向滚动

iOS系统UIKit提供了UITableView,实现了单列多行内容的显示,并提供了UITableViewCell作为构成UITableView的元素,UITableView对其进行智能管理和重用,只需加载显示需要的ViewCell,降低了对系统的要求,提高了程序的运行速度。但是,UITableView仅支持多行单列,不能实现单行多列的界面实现,有些时候恰恰需要我们横向展示一些数据。下面就先从UITableView的实现方式说起。

UITableView, UITableViewCell, UITableViewDelegate和UITableViewDataSource共同实现了UITableView, 同时,UITableView还有一个与之对应的UITableViewController,使用UITableViewController显示UITableView时会更加简单。

UITableView作为展现单列多行的组件,继承于UIScrollView.其中,dequeueReusableCellWithIdentifier:(NSString *)identifier可以根据重用标志找到可以重用的UITableviewCell,当存在可以重用的UITableViewCell时可以直接重用,而不再需要重新创建。

UITableViewCell在创建的时候就设置了一个可供重用的标签,当不再需要显示或者使用完后,UITableView可以回收缓存该UITableviewCell, 需要的时候可以直接重用,因为使用一个已有的对象比创建一个新的对象要容易的多,这样可以降低了性能的要求。另外,它还有一个重要的属性;@property(nonatomic, readonly, retain) *contentView, contentView可以让你任意添加你需要的组件。

UITableViewDelegate作为UITableView的委托类,实现了UITableView需要的展现形式,以及操作时的调用方法。

UITableViewDataSource作为UITableView的数据源,提供UITableView展现的数据内容。

看过了系统支持的UITableView及相关的类,下面我们看如何实现横向滚动的类似展现内容形式,暂且将这个类命名为UIColumnView。

UIColumnView继承于UIScrollView,和UITableView属于同一个父类,另外还实现了UIScrollViewDelegate需要的方法,同时提供了管理重用UITableViewCell的对外接口。

@interface UIColumnView : UIScrollView <UIScrollViewDelegate>

其中提供了UITableView类似的重用ViewCell方法和刷新数据方法。

UIColumnViewDelegate类似于UITableViewDelegate,定义了UIColumnView需要实现的委托方法。

UIColumnViewDataSource类似于UITableViewDataSource,实现了UIColumnView的数据模型,UIColumnView展现的一切数

据将通过该模型得到。

使用UIColumnView的时候,和使用UITableView和其他UIView一样,示例代码中也展示了如何使用UIColumnView.

版权声明:本文为博主原创文章,未经博主允许不得转载。

,可笑的小心谨慎,还有从来就不会安全的安全感。

用类似UITableView的方式实现横向滚动

相关文章:

你感兴趣的文章:

标签云: