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;
}
}
UITableViewDelegate define un método opcional heightForRowAtIndexPath, que lo ayudará a comenzar. Luego necesita usar sizeWithFont.
Hay una discusión sobre su problema específico aquí:
http://www.v2ex.com/2008/09/18/how-to-make-uitableviewcell-have-variable-height/
El tamaño del texto también se discutió en este hilo