iOS - Visualização de rolagem
Uso de Scroll View
Visualização de rolagem é usada para exibir conteúdo maior do que o tamanho da tela. Ele pode conter todos os outros elementos da IU, como visualizações de imagens, rótulos, visualizações de texto e até mesmo outra visualização de rolagem.
Propriedades Importantes
- contentSize
- contentInset
- contentOffset
- delegate
Métodos Importantes
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
Métodos de delegação importantes
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
Atualize ViewController.h da seguinte maneira -
Faça sua classe em conformidade com o protocolo de delegação de visualização de rolagem adicionando < UIScrollViewDelegate> e declarar uma instância de visualização de rolagem conforme mostrado abaixo em ViewController.h.
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIScrollViewDelegate> {
UIScrollView *myScrollView;
}
@end
Adicionar um 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 -
Temos que adicionar uma imagem chamada "AppleUSA1.jpg" ao nosso projeto, o que pode ser feito arrastando a imagem para a área do navegador onde os arquivos do nosso projeto estão listados. A imagem deve ser de resolução maior que a do dispositivo para ver a rolagem da imagem.
Implemente os Delegados scrollView em 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");
}
Atualize viewDidLoad em ViewController.m da seguinte forma -
(void)viewDidLoad {
[super viewDidLoad];
[self addScrollView];
//Do any additional setup after loading the view, typically from a nib
}
Resultado
Quando executamos o aplicativo, obteremos a seguinte saída. Depois de rolar a exibição de rolagem, você poderá ver o restante da imagem.