miércoles, 28 de diciembre de 2011

Evitar que el teclado quede sobre los textfields

Uno de los problemas más comunes cuando programamos para iphone es que el teclado puede ocultar los textfields. La solución más rápida es correr los textfields de manera que no queden ocultos pero en mi aplicación yo tenía varios textfields y no me quedaba lugar para correrlos.

Encontré este tutorial http://joshhighland.com/blog/2010/04/20/iphone-keyboard-covers-text-field/ que me pareció que es el que tiene el código más simple y me funciono perfecto.
 
La idea es la siguiente, realizar dos IBAction en este caso slideFrameUp y slideFrameDown que seran llamados por los textfields cuando ocurran los enventos Editing Did Begin y Editing Did End respectivamente (como se muestra en la figura).


El código de los IBAction y del método que llaman los mismos es el siguiente:

-(IBAction) slideFrameUp;
{
    [self slideFrame:YES];
}
 
-(IBAction) slideFrameDown;
{
    [self slideFrame:NO];
}
 
-(void) slideFrame:(BOOL) up
{
    const int movementDistance = 50; // lo que sea necesario, en mi caso yo use 80
    const float movementDuration = 0.3f; // lo que sea necesario
 
    int movement = (up ? -movementDistance : movementDistance);
 
    [UIView beginAnimations: @"anim" context: nil];
    [UIView setAnimationBeginsFromCurrentState: YES];
    [UIView setAnimationDuration: movementDuration];
    self.view.frame = CGRectOffset(self.view.frame, 0, movement);
    [UIView commitAnimations];
}

miércoles, 14 de diciembre de 2011

Mostrar una imagen desde una url



NSData * imageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString: @"http://myurl/mypic.jpg"]];
cell.image = [UIImage imageWithData: imageData];
[imageData release];


lunes, 5 de diciembre de 2011

¿Cómo convierto un int a un NSString?


Una de las formas es mediante un método de NSString
[NSString stringWithFormat:@”%i” , elentero]

¿Y de NSString a float o a int?
La clase NSString tiene métodos para esto uno es floatValue y el otro intValue.
 NSString *aNumberString = @"35";
 int i = [aNumberString intValue];

Imágenes con bordes redondeados

Cada objeto basado en una vista tiene asociado una capa y cada capa tiene un corner al que se le puede setear su radio. Por lo tanto lo que podemos hacer es lo siguiente: No hay que olvidar que debemos importar el siguiente framework
imageView.layer.cornerRadius = 5.0;
imageView.layer.masksToBounds = YES;

//para agregar un borde:

imageView.layer.borderColor = [UIColor lightGrayColor].CGColor;
imageView.layer.borderWidth = 1.0;

lunes, 7 de noviembre de 2011

iOS 5 - ¿Cómo instalar otros simuladores en XCode 4.2?

Desde el menú de Xcode nos vamos a XCode > Preferences > Downloads y desde ahí podemos seleccionar el simulador  iOS 4.3, iOS 4.0 o iOS 3.0.

domingo, 6 de noviembre de 2011

Parte 3: Objective-C. Traducción de la lección 3

Link a la traducción de la lección 3 !!
Lección 3 corregida!!!
pdf en español


pdf en ingles

miércoles, 2 de noviembre de 2011

Como crear una pantalla Splash

La imagen splash es aquella que se muestra al iniciar la aplicación. Simplemente hay que crear una imagen de 320x480 px y llamarla default.png. Luego hay que incluirla en el proyecto, en la raiz o en la carpeta Resources (recordemos que las carpetas creadas en el proyecto son virtuales) y XCode la tomará como la imagen splash que va aparecer antes de que comience la aplicación.