Comment pourrait-on modifier le fragment de code suivant (dans un tableView:cellForRowAtIndexPath: UITableViewController méthode) de la "09a - PrefsTable" recette du Chapitre 6 de L'iPhone Developer Cookbook:
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;
}
...pour la taille de la "sv" UILabel sous-vue et la "cellule" UITableViewCell à être classé juste assez grand pour contenir le texte (et de travailler avec plus ou moins de texte, et d'autres types d'alignement du texte)? J'ai regardé la UILabel textRectForBounds:limitedToNumberOfLines: la méthode, mais la documentation indique qu'il ne doit pas être appelée directement (et ne doit être remplacée). J'ai testé la UIView sizeToFit méthode, sans succès.
Mise à jour: j'ai posé une nouvelle question au sujet de mon problème avec le NSString -sizeWithFont:forWidth:lineBreakMode: la méthode.