2

ページングが有効になっている UIScrollView があります。ただし、一定の時間が経過すると、このスクロールビューが右にスクロールするようにします。これを実装する簡単な方法はありますか、それともタイマーを使用してプログラムでスクロールビューをスクロールする必要がありますか?

このウェブサイトのようなものがヘッダーに含まれています: http://denederlandsewateren.nl/ ["De Nederlandse Wateren" というテキストが x 秒ごとに変化することに注意してください]

4

4 に答える 4

14

正確なページにスクロールするのに役立つ小さなメソッドが必要です。これは実装されていませんが、非常に単純です。スクロールビューが呼び出されると仮定しましょうmyScrollview

これは、水平方向にスクロールしていることを前提としています。必要に応じてコードを切り替えることができます

-(void)scrollToPage:(NSInteger)aPage{
    float myPageWidth = [myScrollView frame].size.width;
    [myScrollView setContentOffset:CGPointMake(aPage*myPageWidth,y) animated:YES];
}

次に、たとえば次のように、5 秒ごとにこのメソッドを呼び出すタイマーを設定します。

[[NSTimer scheduledTimerWithTimeInterval:5
                                  target:self
                                selector:@selector(scrollPages)
                                userInfo:Nil
                                 repeats:YES] fire];

次のステップは、タイマーによって起動され、次のページにスクロールするメソッドを作成する-(void)scrollPagesことです.currentPagenumberOfPagesNSInteger

-(void)scrollPages{
    [self scrollToPage:currentPage%numberOfPages];
    currentPage++;
}

何かが意味をなさない場合は、私に知らせてください!

于 2013-06-18T12:40:51.170 に答える
0

これはSwift 5互換のものです

var currentPage = 1;
var slideTimer : Timer?

ViewDidLoad

 slideTimer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(scrollPages), userInfo: nil, repeats: true)

viewDidDisappear

slideTimer?.invalidate()

機能

@objc func scrollPages() {
        scrollToPage(page: CGFloat(currentPage%slides.count));
        currentPage+=1;
    }
    
    func scrollToPage(page : CGFloat) {
        let pageWidth = scrollView.frame.width
        scrollView .setContentOffset(CGPoint(x: pageWidth * page, y: 0.0), animated: true)
    }
于 2021-05-16T16:46:53.390 に答える