2010-06-02 4 views

Répondre

0
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
CGFloat scroller_x = [scrollView contentOffset].x; 
CGFloat scroller_y = [scrollView contentOffset].y; 
NSLog(@"%f, %f",scroller_x,scroller_y); 
} 

Une fois ce feu de la méthode des délégués (sur parchemin) vérifier les uns contre les vues frame.origin.x et frame.origin.y Le Le cadre de vue qui correspond à la vue que vous avez défilée.

[scrollView setContentOffset:<#(CGPoint)#>]; 

utilisez cette méthode pour faire défiler vers un view.frame.origin spécifique. Supposons donc que vous ayez une action à faire pour accéder à une vue spécifique, vous pouvez utiliser [scrollView setContentOffset: view.frame.origin] pour y accéder.

(paging supposé est activé)

1
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 
    CGFloat pageWidth = scrollView.frame.size.width; 
    int currentPage = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    pageControl.currentPage = currentPage; 
} 

je la largeur du cadre de scrollview que la largeur de la page. Si vous utilisez autre chose comme largeur de page, faites les changements respectifs pour que cela fonctionne

pour défiler vers la page actuelle - si je comprends bien, vous avez une option pour entrer le numéro de page et choisir de faire défiler jusqu'à cette page:

Juste le code ci-dessus, faites-le en ordre inverse, et pour résoudre contentOffset.X

une fois que vous avez la valeur x, créer un cadre avec cette x en elle, et scrollToRect: animé: fera le travail.

Questions connexes