次のようなフォーラムで提案を試みた後、UITextView の実際の高さを取得できません。
UITextView のサイズをそのコンテンツに合わせるにはどうすればよいですか?
このソリューションでは、UItextView のサイズをコンテンツに合わせて変更しますが、残りのビューを重ねずに配置できるように、UItextView の実際の高さを知る必要があります。
各セルにUITextViewが表示されるUITableViewがあります。
次のコードを使用して、UITextView のサイズを取得し、サイズを変更して、それを含むセルのサイズを変更します。
//self.descriptionTV is a UITextView
self.descripcionTV.text = self.detailItem.descripcion;
//I calculate the height (altura) to size the UITextView and to later size the cell
NSNumber *altura = [NSNumber numberWithFloat:
(self.descripcionTV.contentInset.top + self.descripcionTV.contentSize.height + self.descripcionTV.contentInset.bottom)];
//Here I size the UITextView
CGRect frame = self.descripcionTV.frame;
frame.size.height = altura.floatValue;
self.descripcionTV.frame = frame;
//I use this in tableView:heightForRowAtIndexPath:
[self.cellsToLoad addObject:[NSArray arrayWithObjects:self.cellDescripcion, altura, nil]];
-(float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
//La altura de la celda la tenemos almacenada en el array cells
float altura = [[[self.cellsToLoad objectAtIndex:indexPath.row] objectAtIndex:1] floatValue];
return altura;
}
残念ながら、これでは仕事は完了しません。この後のセルは、いくつかのピクセルが重なっています。以前は UITextViews の代わりに UILabel を使用していましたが、問題はありませんでした。
解決策は、計算された高さを手動でインクリメントすることだけであることは知っていますが、UITextView のサイズを取得するための実際の方法があるかどうかを知りたいです。