0

グループ化された uitableview を使用しています。私はたくさんのセクションを持っています。最初のセクションには、UITableViewCell が 1 つだけあります。このセルにテキストを表示します。

問題は、テキストの文字数がわからず、セルの高さを変更してテキスト全体を表示したいことです。

誰かが私を助けることができますか?ありがとう

4

3 に答える 3

0

以下のコードを適用してプロパティ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;

于 2013-07-28T17:15:13.380 に答える
0

を使用する必要がありますheightForRowAtIndexPathlayoutsubviewsその中で、セル内またはセル内で行うすべての計算を行う必要がありcellForRowAtIndexPathます。そのためには、テキストの長さを把握する必要があります。cellForRowAtIindexPathとにかくテキストにアクセスする必要があります。では、テキストの長さがわからないのはなぜですか。

実際のテキストのサイズを決定するには、NSSTring のsizeWithFont:forWidth:lineBreakMode:.

于 2013-07-28T09:42:43.053 に答える