2011-06-10 13 views

cevap

34

Ben Bunu daha önce kullandı ve iyi çalışıyor gibi görünüyordu. UIScrollView.delegate öğesini kendi kendine ayarladığınızdan emin olun. İlk başta bunu yaptık ama picciano cevabı daha doğru olduğunu

func scrollViewDidEndDecelerating(scrollView: UIScrollView) { 
      pageControl.currentPage = Int(myScrollView.contentOffset.x)/Int(myScrollView.frame.width) 
     } 
4

, bu yöntemi uygulamak zorunda:

- (void)scrollViewDidScroll:(UIScrollView *)_scrollView 
{ 
    if (pageControlIsChangingPage) 
     return; 

    CGFloat pageWidth = _scrollView.frame.size.width; 
    int page = floor((_scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    pageControl.currentPage = page; 
} 

ve bu bir:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView 
{ 
    pageControlIsChangingPage = NO; 
} 

pageControlIsChangingPage olduğu:

BOOL pageControlIsChangingPage; 
+1

: Burada

#pragma mark - UIScrollViewDelegate methods - (void)scrollViewDidEndDecelerating:(UIScrollView *)sender { uint page = sender.contentOffset.x/width; [self.pageControl setCurrentPage:page]; } 

2

yanı Swift için bu cevabın bir güncelleme size `scrollViewDidEndDecelerating` işlemek eğer, yok animasyon yaparken “yanlış uyarılar” elde edin.