我希望在用户滚动时使用一些动画实现UITableView
。只有第一个可见(最顶层)单元格必须是不同的布局。在第二个单元格到达UITableView
的顶部之前,我想要启动小动画。 (更改背景alpha和单元格宽度viewView等)
我怎么能处理这个?
[UPDATE]
到目前为止我尝试过:
scrollViewDidScroll:(UIScrollView *)scrollView
与UITableView的visibleCells
属性一起使用它的第一项来获取
参考没有运气答案 0 :(得分:1)
这就是我所做的:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (!decelerate) {
[self scrollingFinish];
}
}
...
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
[self scrollingFinish];
}
..
- (void)scrollingFinish {
NSIndexPath *firstVisibleIndexPath = [[self.tableView indexPathsForVisibleRows] objectAtIndex:0];
NSLog(@"first visible cell's section: %i, row: %i", (int) firstVisibleIndexPath.section, (int) firstVisibleIndexPath.row);
APFCategoryCell * cell = (APFCategoryCell*) [self.tableView cellForRowAtIndexPath:firstVisibleIndexPath];
[cell animateCell];
[self.tableView scrollToRowAtIndexPath:firstVisibleIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
如果用户向下滚动,则会出现问题,因为动画单元格仍然可见并且下一个动画单元格已设置动画。因此,两个或更多个单元格是动画的。我可以继续在我的自定义单元格中实现一个方法,例如- (void) resetAnimatedCell
,但也许有一种更优雅的方法可以做到这一点?