2014-12-31 71 views
0

我想用全屏的单元格实现UITableView。当用户将单元格向上移动一部分时,我想跳到下一个单元格,而不是让它自然滚动。iOS在UITableView滚动时跳转到下一个单元格

我在这里看不到很多问题或答案,也许这是因为这是一个愚蠢的想法,但客户希望看到它,而设计师也是这样设计的,所以我真的必须尝试。

有没有人对如何实现这一点有任何建议?

谢谢。 (并感谢指出我的无知,不要说谢谢!)

+2

UITableView继承自具有名为pagingEnabled的属性的UIScrollView。设置为YES,它应该做你想做的。 – manecosta

+0

就像用户向上滚动一样,显示下一个单元格? –

+0

而不是行,使用部分,然后它会自动执行相同的操作。你将需要更新viewForSectionHeader,它应该看起来像一个表格单元格。 – Mrunal

回答

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; 
} 

它实际上不是一个可怕的idea-你可以实现与寻呼滚动视图类似的功能,但是这不需要有一次全部加载数据的优势。


编辑:我还必须确保到控制器上禁用automaticallyAdjustsScrollViewInsets,否则我不希望初始的第一单元偏移,以防万一你运行到这一点。

+0

谢谢,这正是我期待的。我有第一个单元格稍微偏移的另一个问题,但是,我在哪里可以自动禁用AdjustsScrollViewInsets? – ColinMasters

+1

您可以在'viewDidLoad:'中添加'self.automaticallyAdjustsScrollViewInsets = NO'行。请注意,您将其设置在实际控制器上而不是在表格视图中。 – Stonz2

+0

这工作,完美答案谢谢。 – ColinMasters

相关问题