Utilisation d'une vue de défilement

Si le contenu dépasse la taille de l'écran, une vue de défilement est utilisée pour afficher les parties masquées.

Elle peut contenir tous les autres éléments d'interface utilisateur, tels que des vues d'image, des libellés, des vues de texte, et même une autre vue de défilement.

Propriétés importantes

  • contentSize
  • contentInset
  • contentOffset
  • delegate

Méthodes importantes

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

Méthodes déléguées importantes

Dans ViewController.h, ajoutez :Déclarez la vue de défilement et faites en sorte que la classe se conforme au protocole délégué, comme indiqué ci-dessous :

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIScrollViewDelegate>
{
    UIScrollView *myScrollView;
}    

@end

Ajoutez une méthode personnalisée addScrollView

-(void)addScrollView{
    myScrollView = [[UIScrollView alloc]initWithFrame:
    CGRectMake(20, 20, 280, 420)];
    myScrollView.accessibilityActivationPoint = CGPointMake(100, 100);
    imgView = [[UIImageView alloc]initWithImage:
    [UIImage imageNamed:@"AppleUSA.jpg"]];
    [myScrollView addSubview:imgView];
    myScrollView.minimumZoomScale = 0.5;
    myScrollView.maximumZoomScale = 3;
    myScrollView.contentSize = CGSizeMake(imgView.frame.size.width,
    imgView.frame.size.height);
    myScrollView.delegate = self;
    [self.view addSubview:myScrollView];
}

Remarque :Nous devons ajouter une image nommée "AppleUSA1.jpg" à notre projet. Cela peut être fait en faisant glisser l'image dans la zone de navigation où nos fichiers de projet sont listés. L'image doit être plus haute que la hauteur de l'appareil.

Implémentez le délégué scrollView dans ViewController.m

 -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    return imgView;
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    NSLog(@"Did end decelerating");
}    
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
//    NSLog(@"Did scroll");
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView 
  willDecelerate:(BOOL)decelerate{
    NSLog(@"Did end dragging");
}
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
    NSLog(@"Did begin decelerating");
}
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    NSLog(@"Did begin dragging");
}

Mettez à jour viewDidLoad dans ViewController.m comme suit

(void)viewDidLoad
{
   [super viewDidLoad];
   [self addScrollView];
   //Do any additional setup after loading the view, typically from a nib
}

Sortie

Maintenant, lorsque nous exécutons l'application, nous verrons la sortie ci-dessous. Une fois que vous faites défiler la vue de défilement, vous pourrez voir le reste de l'image :

scrollViewOutput

Autres extensions