我想用全屏的单元格实现UITableView。当用户将单元格向上移动一部分时,我想跳转到下一个单元格而不是允许它自然滚动。
我在这方面看不到很多问题或答案,也许是因为这是一个愚蠢的想法,但客户想要看到它,而设计师已经设计了它,所以我真的必须尝试。
有没有人对如何实施这个有任何建议?
感谢。 (并且感谢你指出我的无知而不说谢谢!)
答案 0 :(得分:3)
如果您的单元格的大小与tableView的高度相同,请将pagingEnabled
属性设置为YES
。这将使其在每次垂直滑动时捕捉到完整单元格。如果你这样做,我会确保高度完全是全屏,否则当你滚动时你会得到一些奇怪的偏移。
- (void)viewDidLoad
{
[super viewDidLoad];
// or somewhere similar
self.tableView.pagingEnabled = YES;
}
...
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return self.tableView.frame.size.height;
}
这实际上并不是一个糟糕的想法 - 你可以通过分页滚动视图实现类似的功能,但这样做的好处是不需要同时加载所有数据。
编辑:我还必须确保在控制器上禁用automaticallyAdjustsScrollViewInsets
,否则我对第一个单元格有一个不需要的初始偏移量,以防万一你也跑到那个。