0

アプリには次の設定があります。セルが選択されたときに、高さの変化をアニメーション化する UITableView があります。セルにはラベルがあります。セルが選択されていないときと、セルが選択されているとき(セルの高さが大きくなる)、テキスト(UILabel)をオンにしたいときは、テキストを切り捨てて1行に表示しますテキストに基づいて複数行。

これは現時点での私のコードです:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {


    if(self.selectedIndex != nil && [self.selectedIndex isEqual:indexPath]) {
        return kCellHeight * 3.9;

    }

    return kCellHeight;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    [tableView deselectRowAtIndexPath:indexPath animated:NO];

    ProductCell *cell = (ProductCell *) [tableView cellForRowAtIndexPath:indexPath];


    if (![indexPath isEqual:self.selectedIndex]) {

        cell.addButton.hidden = NO;

        cell.descLabel.numberOfLines = 0;
        cell.descLabel.lineBreakMode = NSLineBreakByWordWrapping;
        [cell.descLabel sizeToFit];

        tableView.scrollEnabled = NO;

        self.selectedIndex = indexPath;

    }else {

        self.selectedIndex = nil;

        cell.descLabel.lineBreakMode = NSLineBreakByTruncatingTail;

        tableView.scrollEnabled = YES;


        cell.addButton.hidden = YES;

    }






    [tableView beginUpdates];


    [tableView endUpdates];


}

最初の部分(セルが選択され、展開され、高さが大きくなったとき)テキストは思い通りに収まりますが、2番目の部分(セルが縮小され、セルの高さが通常の高さに戻ったとき)はテキストが収まりません新しい高さに合わせて、必要に応じて切り捨てられます。複数行のままです。どうすればこれを修正できますか? セルが選択されるとテキストが複数行になり、セルが選択解除されるとテキストは通常​​の切り捨てられた状態に戻りますか?

4

1 に答える 1

0

編集:

オーバーライド - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

この関数 cell.descLabel.numberOfLines = 1; に以下の行を追加します。

于 2013-11-07T15:59:40.933 に答える