19

UITableViewCellを展開して、より多くのコンテンツを表示しようとしています。これまでのところ、アニメーションを停止しましたが、問題は、アニメーションが完了する前に新しいコンテンツが表示されることです。これが私のコードです:

ps説明ラベルと読み取りボタンはどちらも、セルの構成時に非表示として開始されます。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.selectedRow = indexPath;
    SDJCell *cell = (SDJCell *)[tableView cellForRowAtIndexPath:indexPath];
    [tableView beginUpdates];
    [tableView endUpdates];
    cell.descriptionLabel.hidden = NO;
    cell.readButton.hidden = NO;
}

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    SDJCell *cell = (SDJCell *)[tableView cellForRowAtIndexPath:indexPath];
    [tableView beginUpdates];
    [tableView endUpdates];
    cell.descriptionLabel.hidden = YES;
    cell.readButton.hidden = YES;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(selectedRow && indexPath.row == selectedRow.row) {
    return 100;
    }
    return 44;
}

セルの拡張が完了した後、この余分なコンテンツをどのように公開できるかについてのアイデアはありますか?

ありがとう!!

4

1 に答える 1

26

私はまったく同じ問題を抱えていました。解決策は、セルの自動サイズ変更マスクを設定して、スーパービューとともにサイズを変更することです。

cell.autoresizingMask = UIViewAutoresizingFlexibleHeight;
cell.clipsToBounds = YES;

sotoryboardでこれを行うこともできます。両方のフラグは、IDインスペクターの下で設定できます。

于 2012-04-19T02:26:58.493 に答える