Existen muchas formas de crear un Scroll en iOS, esta es una forma sencilla de hacerlo, sobre todo cuando tenemos un contenido fijo y requerimos que se contenido tenga scroll.
Pre requisitos:
- Tener creado un proyecto en Objective-C (Aquí el ejemplo en que se basa este post).
- El proyecto deberá usar archivos XIB en lugar de Storyboard.
- Desactivado Auto Layout (Aquí un ejemplo).
- Xcode abierto con el proyecto que vamos a usar.
En este ejemplo la pantalla está configurada para un iPhone de 3.5 pulgadas.
Lo que haremos será agregar un UIScrollView dentro del UIView que tenemos.
Ahora se creará un nuevo UIView el cual tendrá el contenido.
Este UIView será de Size Freedom:
y tendrá las medidas de 320 de width y 568 de height.
En el UIView que acabamos de crear, agregaremos algún elemento visual en él en la parte de abajo, en este caso será un UILabel.
Ahora se deberá crear un property del UIScrollView como del UIView y conectarlos para incrustar el UIView dentro del UIScrollView.
Para hacer la conexión puede ser como se mencionó en cualquiera de estos dos post:
- Cómo conectar manualmente una property IBOutlet de un ViewController a un XIB o Storyboard en Objective-C
- Cómo conectar automáticamente una property IBOutlet de un ViewController a un XIB o Storyboard en Objective-C
Aquí use el del segundo post.
En este ejemplo el UIScrollView se llama scrollViewContenido y el UIView se llama viewContenido.
Abriremos el archivo ViewController.h y en su método:
– (void)viewDidLoad
vamos a agregar el siguiente código para asignar el contenido del UIView dentro del UIScrollView.
[self.scrollViewContenido setContentSize:CGSizeMake(self.viewContenido.frame.size.width, self.viewContenido.frame.size.height)];
[self.scrollViewContenido addSubview:self.viewContenido];
El método quedará de la siguiente manera:
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. [self.scrollViewContenido setContentSize:CGSizeMake(self.viewContenido.frame.size.width, self.viewContenido.frame.size.height)]; [self.scrollViewContenido addSubview:self.viewContenido]; }
Si ejecutamos el ejemplo, podemos mover el scroll hacía abajo y veremos el UILabel que habíamos agregado.