iOS15でUITableViewCell.isHiddenを使ってはいけない
iOS15/Xcode13に対応する季節になりました.
一般的に必要な対応についてはマネーフォワードの方が記事を公開しているので改めて触れる必要はないでしょう. (調べる手間が省けて大変助かりました)
ここでは殆どの人が踏み抜かないであろうiOS15で変わった点を紹介したいと思います.
UITableViewCell.isHiddenの値を変更できない場合がある
結論から言うと, 特定の場合にUITableViewCell.isHidden
の値の変更ができなくなりました.
これはiOS15 + Xcode13という条件で発生するもので, Xcode12でビルドした場合やiOS14で実行した場合などでは同様の問題は発生しません.
UITableViewCell.isHidden
を使う一般的な場面はないと思いますが, 設定画面などの表示したい内容が基本的に固定されているが, 一部のCellが条件によって表示されなくなる場合にこれを使用していました.
allCells
が全ての表示する可能性があるCellで, currentCells
が現在表示しなければならないCellです.
更新する必要がある時に, allCells
から表示するべきではないhidden
なCellを除外し, currentCells
に代入するといった形になっています.
(実際に使っているのは, セクション対応や初期化の利便性を高めたもので実装は異なります)
iOS15 + Xcode13では, 1度UITableViewに表示したCellを非表示 (isHidden = false
)にした後, 表示 (isHidden = true
)することができなくなりました.
表示前の操作に関しては可能なので, 上記のような管理をしない限りは影響しないと思われます.
この記事の挙動は以下のレポジトリから確認することができます.
- https://github.com/soranoba/iOS-SandBox/tree/iOS15_Donot_use_UITableViewCell_isHidden
記事が気に入ったらチップを送ることができます!
You can give me a cup of coffee :)
Kyash ID: soranoba
Amazon: Wish List
GitHub Sponsor: github.com/sponsors/soranoba
PayPal.Me: paypal.me/soranoba
(Updated: )