让我说我有10行显示数字1到10.我需要滚动效果,如1到10到1到10 ......我使用scrollToRowAtIndexPath
和setContentOffset
实现了这一点。问题我想在我应用逻辑停止此递归之前减慢滚动速度。那么有没有办法可以降低scrollToRowAtIndexPath
的滚动速度。
?请不要建议,在这里滚动的decelerationRate都是程序化的,没有用户交互。提前谢谢。
答案 0 :(得分:1)
只需在里面调用你的scrollToRowAtIndexPath或setContentOffset方法 阻止。
查看这些答案以获取更多详细信息:
答案 1 :(得分:0)
您可以这样做:
[UIView animateWithDuration:durationInSeconds animations:^(void){
[tableView setContentOffset:offset animated:NO];
}];
您只需要计算偏移量。如果您的行具有相同的高度,则只需计算您的偏移量:
CGPoint offset = CGPointMake(0, indexPath.row * rowHeight);
如果高度不同,那么你需要这样做:
CGFloat offsetY = 0;
for (NSInteger i = 0; i <= indexPath.row; i++) {
offsetY += [tableView.delegate tableView:tableView heightForRowAtIndexPath:indexPath];
}
CGPoint offset = CGPointMake(0, offsetY);
编辑:
您还可以使用scrollToRowAtIndexPath:animated:
方法,在动画块中将animated
设置为NO
而不是setContentOffset
,然后您不必自己计算偏移量