iOS - Visualizzazione a scorrimento

Uso della visualizzazione a scorrimento

La visualizzazione a scorrimento viene utilizzata per visualizzare contenuti di dimensioni superiori alle dimensioni dello schermo. Può contenere tutti gli altri elementi dell'interfaccia utente come visualizzazioni di immagini, etichette, visualizzazioni di testo e persino un'altra visualizzazione a scorrimento stessa.

Proprietà importanti

  • contentSize
  • contentInset
  • contentOffset
  • delegate

Metodi importanti

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

Metodi delegati importanti

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

Aggiorna ViewController.h come segue:

Rendi la tua classe conforme al protocollo delegato della visualizzazione a scorrimento aggiungendo < UIScrollViewDelegate> e dichiarare un'istanza di visualizzazione a scorrimento come mostrato di seguito in ViewController.h.

#import <UIKit/UIKit.h>

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

Aggiungi un metodo personalizzato 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];
}

Note -

Dobbiamo aggiungere un'immagine denominata "AppleUSA1.jpg" al nostro progetto, cosa che può essere eseguita trascinando l'immagine nella nostra area di navigazione dove sono elencati i nostri file di progetto. L'immagine dovrebbe avere una risoluzione superiore a quella del dispositivo per vedere lo scorrimento dell'immagine.

Implementa gli scrollView Delegates in 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");
}

Aggiorna viewDidLoad in ViewController.m come segue:

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

Produzione

Quando eseguiamo l'applicazione, otterremo il seguente output. Dopo aver fatto scorrere la visualizzazione a scorrimento, sarai in grado di vedere la parte rimanente dell'immagine.