4

UIScrollView(水平に)スクロールしたい。ただし、ボタンを押すと、スクロールビューの左端に移​​動します。3,4ピクセルスクロールしたいのですが、もう一度押すとさらに3,4ピクセルスクロールします

- (IBAction)leftScroll:(id)sender
{
    CGPoint pt;
    pt.x = 1;
    pt.y = 0;
    UIScrollView *sv = (UIScrollView *)[self.view viewWithTag:5];
    [sv setContentOffset:pt animated:YES];         
}

よろしくお願いします

4

4 に答える 4

18

試して、手動で新しい位置を設定してください。

Objective-c

  float width = CGRectGetWidth(scrollView.frame);
  float height = CGRectGetHeight(scrollView.frame);
  float newPosition = scrollView.contentOffset.x+width; 
  CGRect toVisible = CGRectMake(newPosition, 0, width, height);

 [scrollView scrollRectToVisible:toVisible animated:YES];

スウィフト4

let scrollView = UIScrollView()
let width: CGFloat = scrollView.frame.size.width
let height: CGFloat = scrollView.frame.size.height
let newPosition: CGFloat = scrollView.contentOffset.x + width
let toVisible: CGRect = CGRect(x: newPosition, y: 0, width: width,   height: height)

scrollView.scrollRectToVisible(toVisible, animated: true)
于 2012-08-28T15:02:54.590 に答える
5

メソッドを使用できます[scrollView setContentOffset:CGPointMake(x, y) animated:YES];。scrollViewが水平方向にスクロールする場合は、それに応じてx値を設定する必要があります。それ以外の場合は、y値を設定します。

于 2014-01-20T19:48:36.343 に答える
3

Obj-Cでは、次のようにスクロールビューのあるポイントまでスクロールできます。

[scrollView setContentOffset:CGPointMake(x, y) animated:YES];

またはSwift

scrollView.contentOffset = CGPoint(x: x, y: y)

UIScrollViewでスライドショーを行うには、すべての画像をスクロールビューに配置し、繰り返しタイマーを設定してから、タイマーが起動したときに-setContentOffset:animated:を設定します。

于 2015-10-08T07:37:36.640 に答える
0
UIButton *locatorbutton_frame=(UIButton *)[scrollviewoutlet viewWithTag:numberglobal];
float width = scrollviewoutlet.frame.size.width;
float height = scrollviewoutlet.frame.size.height;
float newPosition = scrollviewoutlet.contentOffset.x-locatorbutton_frame.frame.size.width;//+width;
CGRect toVisible = CGRectMake(newPosition, 0, width, height);

[scrollviewoutlet scrollRectToVisible:toVisible animated:YES];

正常に機能していることがわかりました。locatorbutton_frameは、スクロールビューに追加したボタンです。

于 2014-12-09T11:34:33.017 に答える