YA TENEMOS EL VIDEO DISPONIBLE.
Como recordareis, hace poco os hablé de iPhoneDevCentral, y de la agradable sorpresa en cuanto a la cantidad y calidad de los vídeos que tienen publicados.
Como el inglés no es mi fuerte, aunque pillo algo, he decidido subtitular uno de sus ejemplos para explicaros paso a paso la creación de una barra de progreso. No es una traducción real, ya que entre lo que iba escuchando e iba viendo, me parecía más útil suprimir todo lo innecesario y dejar tan solo las explicaciones útiles.
El video en cuestión dura unos 15 minutos y espero que gracias a los comentarios subtitulados os sirvan de ayuda. Ya que en este tamaño tan pequeño no se pueden apreciar los comentarios, os recomiendo que lo veáis a pantalla completa pues tiene buena calidad.
Si os gusta y le encontráis utilidad a las explicaciones subtituladas por mí, en breve iré subiendo más. Se aceptan sugerencias de cual os parece más interesante de todos los vídeos.
Despues de buscar por toda la documentación algun control tipo checkBox decidi crear una aplicación sencilla que simule el comportamiento de un checkBox usango dos graficos: encendido y apagado. El ejemplo que desarrollaremos sera una lista de compras en un UITableView:
Para empezar crearemos una nuevo proyecto del tipo "Navigation-Based Application" que llamaremos ListaDeCompras, quiero resaltar que en este ejemplo no usaremos Interface Builder porque me parece que quedara mucho mas claro hacerlo todo mediante programacion:
Nos crearemos un nuevo archivo tipo UIViewController al que llamaremos ListaDeComprasViewController, por ahora no haremos nada con este archivo.
Al crear el proyecto se creo por defecto un archivo ListaDeComprasAppDelegate con la extension .h y .m, entremos a ListaDeComprasAppDelegate.h para inicializar nuestra ventana y su navigationController :
Ahora en ListaDeComprasAppDelegate.m aňadimos la vista del controlador a nuestra la ventana dentro del metodo applicationDidFinishLaunching.
Al inicializar el navegador vemos que se asigna un initWithRootViewController , en este caso una instancia de ListaDeComprasViewController que sera la vista que se mostrara al iniciar la aplicacion:
Ahora trabajemos con los archivos ListaDeComprasViewController .h y .m respectivamente. En ListaDeComprasViewController.h inicializaremos un tableView para mostrar nuestros datos y un array que contendra nuestra lista de compras de la siguiente manera:
Ahora, en el archivo ListaDeComprasViewController.m es donde debemos cargar toda nuesta vista, recordemos que no estamos usando IB asi que debemos usar el metodo loadView.
Empezamos creando una vista inicial a la que llamaremos contentView, luego crearemos un tableView que añadiremos a la vista principal.
Para el arreglo crearemos objetos con 2 variables: item y cantidad y un booleano que nos indique si el objeto esta seleccionado o no.
Ahora para poder usar nuestro tableView usamos los metodos de UITableViewDelegate y UITableViewDataSource.
En el metodo cellForRowAtIndexPath insertamos los valores del array para cada celda y con un if-else determinamos si aparecera la imagen de apagado o encendido dependiendo de nuestro valor booleano. Y en el metodo didSelectRowAtIndexPath es donde este valor ira cambiando cada vez q seleccionemos una celda.
Finalmente hacemos dos cambios mas en el archivo infoplist borramos el nombre del archivo main.nib en Main nib file base name porque no estamos usandolo y dentro del archivo main.m hacemos el siguiente cambio para que nuestro proyecto llame a ListaDeComprasAppDelegate:
Las imagenes de encendido y apagado las agregamos a la raiz del proyecto o podemos crear un directorio especial para nuestras imagenes, en ambos casos funciona de la misma manera. Espero que este ejemplo les haya servido y cualquier pregunta no duden en escribir.
A través de faq-mac conocemos que Apple ya ha publicado una visita guiada a través del iPhone 3G desde su página Web. En el mismo podemos conocer todas las características del dispositivo que pronto tendremos en nuestras manos.