グループ化された uitableview を使用しています。私はたくさんのセクションを持っています。最初のセクションには、UITableViewCell が 1 つだけあります。このセルにテキストを表示します。
問題は、テキストの文字数がわからず、セルの高さを変更してテキスト全体を表示したいことです。
誰かが私を助けることができますか?ありがとう
グループ化された uitableview を使用しています。私はたくさんのセクションを持っています。最初のセクションには、UITableViewCell が 1 つだけあります。このセルにテキストを表示します。
問題は、テキストの文字数がわからず、セルの高さを変更してテキスト全体を表示したいことです。
誰かが私を助けることができますか?ありがとう
以下のコードを適用してプロパティnumberOfTextRowsを作成する問題を解決しました。
(CGFloat)tableView:(UITableView *)t heightForRowAtIndexPath:(NSIndexPath *)indexPath
float height = 45.0f;
if (indexPath.section == 0 && indexPath.row == 0) {
CGSize theSize = [self.strResult sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(265.0f, 9999.0f) lineBreakMode:UILineBreakModeWordWrap];
self.numberOfTextRows = round(theSize.height / 12);
if ((indexPath.section == height) || (self.numberOfTextRows < 2)) {
height = 45;
} else {
height = theSize.height + 16;
}
}
return height;
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = self.numberOfTextRows;
を使用する必要がありますheightForRowAtIndexPath
。layoutsubviews
その中で、セル内またはセル内で行うすべての計算を行う必要がありcellForRowAtIndexPath
ます。そのためには、テキストの長さを把握する必要があります。cellForRowAtIindexPath
とにかくテキストにアクセスする必要があります。では、テキストの長さがわからないのはなぜですか。
実際のテキストのサイズを決定するには、NSSTring のsizeWithFont:forWidth:lineBreakMode:
.