在一段时间内从上到下滚动UITableView?

时间:2013-02-15 22:13:53

标签: ios objective-c uitableview animation scroll

我试图让我的UITableView以稳定的速度慢慢向下滚动,我可以指定。我使用过scrollToRowAtIndexPath,但无论我是否选择动画,它都是一个近乎瞬间的动作。我正在寻找一些动作慢得多的东西。

我确实想知道是否可以使用UIView动画块执行某些操作,一次移动一个indexPath.row,但由于我的单元格高度不同,这会导致动画速度不均匀。

我可以采取其他任何方式吗?

3 个答案:

答案 0 :(得分:3)

我得到了它......

[NSTimer scheduledTimerWithTimeInterval: 0.025 target:self selector:@selector(scrollTableView) userInfo:nil repeats:YES];

和..

- (void) scrollTableView {

    float w = 1;

    CGPoint scrollPoint = self.tableView.contentOffset;
    scrollPoint.y = scrollPoint.y + w;
    if (scrollPoint.y >= self.tableView.contentSize.height - (self.tableView.frame.size.height - 100)  || scrollPoint.x <= -self.tableView.frame.size.height + 924) {
    w *= -1;
    }
    [self.tableView setContentOffset: scrollPoint animated: NO];
}

答案 1 :(得分:0)

随着时间的推移,您总是可以减少contentOffset y轴。

答案 2 :(得分:0)

在这里,你好友。只需将animateWithDuration更改为更高的秒数(如1或1.5),看它是否达到了您想要的效果。确保在* .m文件中包含QuartzCore库和#import <QuartzCore/QuartzCore.h>。这很简单

-(IBAction)modeTableSlowly
{

    [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^{

            //here tblSimpleTable2 is tableView
            [tblSimpleTable2 setFrame:CGRectMake(183, 56, 137, 368)];

    } completion:nil];

}