私は、ボタンを押してセルの1つを折りたたんだり展開したりできるコレクションビューで作業しています。この機能のオリジナルの開発者はいなくなったので、私はすべてが何をしているのか理解しようとしています。私は、ユーザーがボタンを押したときに、伝えることができるものから、次のコードが呼び出されます:ビューを非表示に設定するとフレームが調整されます
- (void)expandCell{
[expandCollapseButton setTitle:@"-" forState:UIControlStateNormal];
[textView setHidden:NO];
isExpanded = YES;
[self.delegate cellDidExpandCollapse];
}
当社の崩壊細胞は、我々は、それを隠すNO
にisExpanded
変数を設定して、タイトルを設定しないでください除き実質的に同じです" - "ではなく "+"にしてください。 cellDidExpandCollapse
デリゲートメソッドは、単にupdateCollection
メソッドを呼び出します。これは、以下でコピーしたものです。
- (void)updateCollection {
[self.collection performBatchUpdates:nil completion:nil];
[self.amountCell updateTable];
[self.collection setNeedsLayout];
[self.collection layoutIfNeeded];
}
これだけです。しかし、layoutIfNeeded
が呼び出されると、システムはtextViewのフレームを異なる起点と高さ0に設定します。なぜ私の理解から隠れたビューがまだ「存在」しているのか分かりません。私はボタンを押したときにtextViewのロジックを更新するフレームを呼び出さないので、実際にフレームがどのように設定されているのか分かりません。
コレクションビューや一般的なビューのプロパティはありますか?フレームが非表示になっているときにフレームの高さを崩壊させるように設定できますか?それとも、私が探していなければならない他の魔法のプロパティがありますか?
編集:ビューはスタックビューでは設定されていないので、少なくとも私が理解する限り、サイズを変更しないでください。