Uso del Scroll View
Si el contenido excede el tamaño de la pantalla, se usa el Scroll View para mostrar la parte oculta.
Puede contener todos los demás elementos de la interfaz de usuario, como Image View, etiquetas (labels), Text View e incluso otro Scroll View.
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 delegados importantes
En ViewController.h, agregue
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIScrollViewDelegate>
{
UIScrollView *myScrollView;
}
@end
Agregue el 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];
}
Nota:Debemos agregar una imagen llamada "AppleUSA1.jpg" a nuestro proyecto. Esto se puede hacer arrastrando la imagen al área de navegación donde se listan los archivos del proyecto. La imagen debe ser más alta que la altura del dispositivo.
Implementación del delegado de 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, como se muestra a continuación
(void)viewDidLoad
{
[super viewDidLoad];
[self addScrollView];
//Do any additional setup after loading the view, typically from a nib
}
Salida
Ahora, cuando ejecutemos la aplicación, veremos la siguiente salida. Una vez que desplacemos el Scroll View, podremos ver el resto de la imagen: