カスタムUITableViewCellがあり、複数のサブビューを含むUIViewがあります。場合によっては、これらのビューの一部を非表示にして、親UIViewがまだ私のUITableViewCellの中央にくるように制約を更新します。UITableViewCell - リロード後にのみ更新される制約
私の問題は、セル再利用のため、これは、セルが直接表示されていない場合(セルが表の先頭に表示されている最上部のセルの1つではない場合)にのみ有効です。そのような場合、私が下にスクロールし、私が戻ってスクロールすると、それは再び働く。画像はこれを説明するのに役立ちます:
これは初めてUITableViewを読み込んだときに表示されるものです。最初のセルはすべての情報を持つ通常のセルで、2番目のセルは最初の要素が隠されているセルです。
これは私がスクロールダウンしたときに何が起こるかで、その後、バックアップします。
あなたが見ることができるように、それは私が望むまさにそれです。制約は正しく更新されていますが、セルが表示された画面から消えてから再び表示されます。
[reviewsAndPriceView setNeedsUpdateConstraints];
[reviewsAndPriceView setNeedsLayout];
[reviewsAndPriceView layoutIfNeeded];
[self updateConstraints];
[self setNeedsUpdateConstraints];
[self setNeedsLayout];
[self layoutIfNeeded];
さまざまなバリエーションがありますが、機能しません。これを達成する方法は何ですか?
したがって、すべての制約をどこでリセットする必要がありますか? cellForIndexPathの冒頭に?私はこれをやってみたが、何も変わらない。 –
この行の後の@bloemy: 'cell = [tableView dequeCellWith .....];' – Dalvik
これも解決していないようです。だから、セルを生成した後、すべての制約を元の値にリセットしてから、それらを再変更する必要がありますか?奇妙な部分は、それらをリセットすることも何も変わらないということです。 –