利用DTGridView实现横向滚动的tableview

来源:互联网 发布:微信运动图片 知乎 编辑:程序博客网 时间:2024/06/05 20:13

我们都知道tableview的实现原理,就是创建当前可见个数的tablecell,滚动过程中只是更改不可见的tablecell到可见的位置并且更新数据。这样可以避免滚动很多屏不用创建相应的视图,这样就不会造成内存泄漏。
下面是实现的效果图:

 

下面是实现的代码:

#pragma mark DTGridViewDataSource Methods
- (NSInteger)numberOfRowsInGridView:(DTGridView *)gv {
return 1;
}
- (NSInteger)numberOfColumnsInGridView:(DTGridView *)gv forRowWithIndex:(NSInteger)index {
return 20;
}
- (CGFloat)gridView:(DTGridView *)gv heightForRow:(NSInteger)rowIndex {
return gv.frame.size.height;
}
- (CGFloat)gridView:(DTGridView *)gv widthForCellAtRow:(NSInteger)rowIndex column:(NSInteger)columnIndex {
return gv.frame.size.width;
}
- (DTGridViewCell *)gridView:(DTGridView *)gv viewForRow:(NSInteger)rowIndex column:
(NSInteger)columnIndex {
return gv.frame.size.width;
}
- (DTGridViewCell *)gridView:(DTGridView *)gv viewForRow:(NSInteger)rowIndex column:(NSInteger)columnIndex {
MyTableCell *cell = (MyTableCell *)[gv dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"MyTableCell" owner:self options:nil] objectAtIndex:0];
cell.identifier = @"cell";
}
[cell onShowCell];
return cell;
}