根本的な原因は、estimatedRowHeight
が基礎となるUIScrollView.contentOffset
についての仮定を作るのに使用されていると考えていますが、これは見積もりであるため、常に定義上間違っています。実際の行の高さは、セルの内容とデバイスの向きによってまったく異なります。このtableView textFieldの自動レイアウトの不具合を修正または回避するにはどうすればよいですか?
さらに近い推定値を提供するためにestimatedHeightForRowAtIndexPath
を実装しても、グリッチはまだ存在します。
トップビューからスクロールダウンすると、TableViewはセル位置と同期してcontentOffsetを保持するため、実際のセル高さを学習するため、すべてがうまくいきます。しかし、すべての実際のセルの高さが回転するとすぐにUITableView
が同期しなくなり、どこにスクロールするのかわからなくなります。
しかし、あまりにも起こっても、他人の事は時々UITextField
セルが、私は簡単な例に、すべてを煮詰めてきたとにかく別のセルの上に終わると、そこに立ち往生したまま...
ます、があります。 iPhoneで、次いでソフトウェアキーボードを有効にシミュレータを使用している場合
https://github.com/trapper-/autolayout-glitch
- テスト。
- スクロールしたり、フィールドを選択したり、回転したりするだけで、多くの視覚的な不具合が表示されます。
- 簡単な反復可能な例については、
- 下にスクロールします。
UITextField's
の最後のカップルを1つ選択すると、UITableView
がスクロールしてフィールドが確実に表示されます。- デバイスを回転します。
理想的ではありませんが、tableViewインスタンスのreloadData呼び出しが役立ちます。それを試しましたか? –
AutolayoutはUITableViewではうまく動作しません。 CollectionViewの使用を検討してください。これは、UITableViewの制限についての素晴らしい記事です:https://pspdfkit.com/blog/2017/the-case-for-deprecating-uitableview/ –
あなたは 'UICollectionView'にこれらの同じ種類のグリッチがないと言っていますか?もしそうなら、それはすばらしい解決策になるでしょう。 – trapper