代码之家  ›  专栏  ›  技术社区  ›  samvermette

UIScrollView scrollRectToVisible以自定义速度显示

  •  7
  • samvermette  · 技术社区  · 16 年前

    我有一个UIScrollView,我正在调用scrollRectToVisible:animated:YES。

    2 回复  |  直到 15 年前
        1
  •  12
  •   samvermette    16 年前

    我最终找到了解决办法。在我的例子中,滚动在启动后以编程方式设置动画,以模拟老虎机(具有3个水平UIScrollView)。正在使用scrollRectToVisible:animated:方法执行此操作。

    我使用UIView的beginAnimation设置了一个自定义速度:

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:(abs(rMid-pMid)*0.3)];
    scrollMid.contentOffset = CGPointMake(rMid*320, 0);
    [UIView commitAnimations];
    

    动画持续时间取决于滚动条在每个“图形”之间移动的距离。

        2
  •  5
  •   Markus Rautopuro    12 年前

    带有块的现代版本:

    [UIView animateWithDuration:1.0 animations:^{
        [self.scrollView scrollRectToVisible:CGRectMake(...) animated:NO];
    } completion:^(BOOL finished) {
        ...
    }];