¿Cómo se podría modificar el siguiente fragmento (en un tableView: cellForRowAtIndexPath: Método UITableViewController) de la "09a - PrefsTable" receta del Capítulo 6 del libro de cocina del iPhone Desarrollador:¿Dimensionando un UILabel para encajar?
if (row == 1) {
// Create a big word-wrapped UILabel
cell = [tableView dequeueReusableCellWithIdentifier:@"libertyCell"];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"libertyCell"] autorelease];
[cell addSubview:[[UILabel alloc] initWithFrame:CGRectMake(20.0f, 10.0f, 280.0f, 330.0f)]];
}
UILabel *sv = [[cell subviews] lastObject];
sv.text = @"When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.";
sv.textAlignment = UITextAlignmentCenter;
sv.lineBreakMode = UILineBreakModeWordWrap;
sv.numberOfLines = 9999;
return cell;
}
... para dimensionar el " sv "La subvista UILabel y la UITableViewCell" celda "deben ser lo suficientemente grandes para ajustarse al texto (y trabajar con más o menos texto y otros tipos de alineación de texto). Miré el método UILabel textRectForBounds: limitedToNumberOfLines: pero la documentación indica que no se debe invocar directamente (y solo se debe anular). Experimenté con el método UIView sizeToFit, sin éxito.
Actualización:I asked a new question about my problem with the NSString -sizeWithFont:forWidth:lineBreakMode: method.
+1 de la frase de ejemplo elegida. –