plus cuenta con activar iphone cocoa-touch uitableview user-interface

cuenta - nfc iphone 8 plus activar



Variable UITableCellView altura con subvista (3)

textView.numberOfLines = 2? numberOflines establece un número máximo de líneas así que tal vez 2 sean para ti.

Quiero crear una UITableView con distintas alturas de fila, y estoy tratando de lograr esto creando UILabels dentro de UITableViewCells.

Aquí está mi código hasta ahora:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *MyIdentifier = @"EntryCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease]; } UILabel *textView = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 300, 40)]; textView.numberOfLines = 0; textView.text = [entries objectAtIndex:[indexPath row]]; [cell.contentView addSubview:textView]; [textView release]; return cell; }

Esto me da 2 líneas de texto por celda. Sin embargo, cada "entrada" tiene un número diferente de líneas, y quiero que UITableViewCells cambie el tamaño automáticamente, ajustando el texto según sea necesario, sin cambiar el tamaño de la fuente.

[textView sizeToFit] y / o [cell sizeToFit] no parecen funcionar.

Así es como quiero que se vea UITableView:

---------------- Lorem ipsum ---------------- Lorem ipsum Lorem ipsum ---------------- Lorem ipsum Lorem ipsum Lorem ipsum ---------------- Lorem ipsum ---------------- Lorem ipsum Lorem ipsum ----------------

¿Alguien sabe cómo hacer esto correctamente?

Gracias.


Este código funciona para mí. No sé si es perfecto, pero funciona.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if(indexPath.row<[notesModel numberOfNotes]){ NSString *cellText = [@"Your text..."]; UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:12.0]; CGSize constraintSize = CGSizeMake([UIScreen mainScreen].bounds.size.width - 100, MAXFLOAT); CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; return labelSize.height + 20; } else { return 20; } }