iOS: vista de desplazamiento

Uso de la vista de desplazamiento

La vista de desplazamiento se utiliza para mostrar contenido más que el tamaño de la pantalla. Puede contener todos los demás elementos de la interfaz de usuario, como vistas de imágenes, etiquetas, vistas de texto e incluso otra vista de desplazamiento.

Propiedades Importantes

  • contentSize
  • contentInset
  • contentOffset
  • delegate

Métodos importantes

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

Métodos importantes para delegados

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

Actualice ViewController.h de la siguiente manera:

Haga que su clase se ajuste al protocolo de delegado de vista de desplazamiento agregando < UIScrollViewDelegate> y declarando una instancia de vista de desplazamiento como se muestra a continuación en ViewController.h.

#import <UIKit/UIKit.h>

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

Agregar un método personalizado 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 -

Tenemos que agregar una imagen llamada "AppleUSA1.jpg" a nuestro proyecto, lo cual se puede hacer arrastrando la imagen al área de nuestro navegador donde se enumeran los archivos de nuestro proyecto. La imagen debe tener una resolución superior a la del dispositivo para ver el desplazamiento de la imagen.

Implementar los delegados scrollView en 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");
}

Actualice viewDidLoad en ViewController.m de la siguiente manera:

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

Salida

Cuando ejecutamos la aplicación, obtendremos el siguiente resultado. Una vez que desplace la vista de desplazamiento, podrá ver la parte restante de la imagen.