Pregunta

Tengo un UITableViewCell y es UITableViewCellStyleDefault. Cuando trato de poner el texto más largo que el UITableViewCell, se trunca. ¿Cómo hago la célula ampliar para dar cabida a este texto?

¿Fue útil?

Solución

No se puede ampliar el ancho de celda más de la pantalla del iPhone ... Lo que puede hacer es 1> realice una fuente más pequeña 2> realiza los múltiples líneas de texto

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }

    CGRect contentRect = CGRectMake(80.0, 0.0, 240, 40);
    UILabel *textView = [[UILabel alloc] initWithFrame:contentRect];

    textView.text = mytext;
    textView.numberOfLines = 2;
    textView.textColor = [UIColor grayColor];
    textView.font = [UIFont systemFontOfSize:12];
        [cell.contentView addSubview:textView];
    [textView release];

Otros consejos

No he tratado de hacer exactamente lo que estamos tratando de hacer, pero probablemente algo parecido a esto:

Tiene que cambiar el tamaño de una vista en función de la longitud de la cadena de texto en su interior.

La vista de tabla delegado (el controlador de vista) debe implementar

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    Message *msg = (Message *)[messages objectAtIndex:indexPath.row];
    CGSize size = [[msg text] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:kLabelFontSize]
                         constrainedToSize:CGSizeMake(220.0f, 480.0f)
                             lineBreakMode:UILineBreakModeTailTruncation];
    CGFloat minHeight = 20.0f;
    CGFloat height = size.height > minHeight ? size.height : minHeight;
    return height;
}

que le dice a la vista la altura para hacer de cada fila.

Vamos a necesitar a la necesidad de cambiar el tamaño del marco también de la etiqueta UITableViewCell de manera similar.

Creo que todas las células tienen que ser de la misma altura y anchura. Se puede cambiar la altura de la UITableViewCells utilizando la propiedad tableView's rowHeight.

Por ejemplo, si subclase UITableViewController

self.tableView.rowHeight = 100;

Otra opción es añadir un UILabel personalizada como una vista secundaria de la contentView células como se ha mostrado anteriormente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top