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 :
#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 :