以编程方式从左向右滚动UIScrollView反向

时间:2013-04-24 10:14:17

标签: ios uiscrollview reverse right-to-left

我尝试从左到右自动滚动但我还没有成功。 我正在评估以下表达式来改变方向(添加或减少像素),但当滚动到达最终时它被阻止...

(xContentSize - xOffset) >= CGRectGetWidth(_scroll.bounds)

(xContentSize - xOffset) > CGRectGetWidth(_scroll.bounds)

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

试试这个:

float w = scrollView.frame.size.width;
float h = scrollView.frame.size.height;
float newPosition = scrollView.contentOffset.x+w; 
CGRect toVisible = CGRectMake(newPosition, 0, w, h);

[scrollView scrollRectToVisible:toVisible animated:YES];

手动设置您想要的位置

答案 1 :(得分:0)

最后,我得到了解决方案。

每隔4.0秒使用NSTimer

[UIView animateWithDuration:3.0
                     animations:^{

                         if (_direction == 0) {
                             _scroll.contentOffset = CGPointMake((_scroll.contentSize.width - CGRectGetWidth(_scroll.frame)), 0.0);
                         }else{
                             _scroll.contentOffset = CGPointMake(0.0, 0.0);
                         }

                     } completion:^(BOOL finished) {
                         _direction = !_direction;
                     }];

答案 2 :(得分:0)

快捷键4 -向右滚动70px,然后向左滚动(用于向用户提示UIScrollView上有分页符

UIView.animate(withDuration: 0.4, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [.curveEaseInOut, .allowUserInteraction, .autoreverse], animations: {
  self.scrollView.contentOffset.x += 70
}) { [unowned self] _ in
  self.scrollView.contentOffset.x = 0
}