2011-10-13 17 views
12

Quiero hacer una pantalla de inicio de sesión como la de la aplicación de Facebook. La parte que quiero replicar son los dos campos de texto que cuando se apilan parecen un grupo de tablas. Sin embargo, no puedo entender cómo lo hicieron.iOS: TextField de estilo de tabla para la pantalla de inicio de sesión?

¿Quién sabe el truco?

No puedo publicar una imagen porque soy nuevo en stackoverflow. Es un efecto que parecen un óvalo redondeado pero con 2 campos de texto dentro. Uno para nombre de usuario, uno para contraseña.

+0

Quizás le interese este control que ya se ha escrito: http://cocoacontrols.com/platforms/ios/controls/ddalertprompt – Luke

+0

Si desea cargar imágenes, puede utilizar el siguiente control que se muestra en el enlace imagen: http://img31.imageshack.us/img31/566/screenshot20111015at317.png – User97693321

Respuesta

11

puede usar el siguiente código.

// en el archivo .h

UITextField *loginId; 
UITextField *password ; 

// en el archivo .m

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
     return 2; 
    } 
    - (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

     UITableViewCell *cell = [table dequeueReusableCellWithIdentifier:@"Cell"]; 
     if(cell == nil) 
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"] autorelease]; 

     if (indexPath.row == 0) { 
      loginId = [[UITextField alloc] initWithFrame:CGRectMake(5, 0, 280, 21)]; 
      loginId .placeholder = @"loginid"; 
      loginId .autocorrectionType = UITextAutocorrectionTypeNo; 
      [loginId setClearButtonMode:UITextFieldViewModeWhileEditing]; 
      cell.accessoryView = loginId ; 
     } 
     if (indexPath.row == 1) { 
      password = [[UITextField alloc] initWithFrame:CGRectMake(5, 0, 280, 21)]; 
      password.placeholder = @"Password"; 
      password.secureTextEntry = YES; 
      password.autocorrectionType = UITextAutocorrectionTypeNo; 
      [password setClearButtonMode:UITextFieldViewModeWhileEditing]; 
      cell.accessoryView = password; 
     } 
     loginId.delegate = self; 
     password.delegate = self; 


     [tableView1 addSubview:loginId]; 
     [tableView1 addSubview:password]; 
     [loginId release]; 
     [password release]; 

     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     return cell; 
    } 
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 

     return 1; 
    } 
+0

Utilice la opción de comentario para comentarios. – JustSid

+0

Gran respuesta, una pregunta sin embargo. ¿Hay alguna manera de mover la posición de las 2 celdas agrupadas o tendrán que permanecer en la parte superior de la pantalla? – BlueMeanie

3

Simplemente use un UIVIew con esquinas redondeadas para el fondo y agregue los dos campos de texto como vistas secundarias.

-2

Puede tomar UITableView y agregar UITextField como accessoryType para su propósito.

4

¡Ah! Tengo la respuesta. Es solo arte. Es un UIImage que se parece a una mesa de 2 celdas con UITextFields sin bordes. ¿Por qué nunca adivino que es arte?

9

tomar el código de aquí: https://github.com/c99koder/lastfm-iphone

si se descarga el código y mirar hacia el FirstRunView.xib verá la misma implementación que desee.

+5

Solo un aviso para cualquiera que eche un vistazo al código de lastfm, usa imágenes para lograr el efecto agrupado TableView. –

Cuestiones relacionadas