私はの自動行の高さとUITableView
を持っています。 UITableViewCell
の中では、最初にプログラムのAutolayout制約を使ってUIButton
を追加します。彼らは私が望むように完全に配置されています。その後、3秒後に(NSTimer
)、私はそれらのすべてを削除し、再度別の数を再度追加します。 (例えばのために最初に私は、3秒後に、私は4 UIButtons
これら4 UIButton
秒を削除して、3種類のものを追加しているUITableViewCell内のプログラマティックな自動レイアウト変更は、方向変更後にのみ更新されます
最初:。
投稿回転:
どうしてですか?私はAutolayoutの警告が表示されません。また、向きを変更した後は、すべてが正しく配置されます。オリエンテーションの変更が必要なのは何ですか?私はsetNeedsUpdateConstraints
、layoutIfNeeded
、layoutSubviews
を使用してみましたが、無駄に?:どのように私は
PS(これが何をしすぎているようだだけのためにテーブルビューを再ロード)これを手動で強制することができます。
UITableViewCell
コードはhttp://pastebin.com/TcHUXgDUです。 (このスペースを汚染しないようにペーストビンを追加しました)しかし、基本的には、のUITableView
というテーブルビューサブクラスの中にあるconfigure:
メソッドがあります。このメソッドは、これらの制約を追加します。また、タイマーが起動した後、追加するアイテムの数が最初のアイテムの数と異なる以外は、同じコードが(別の関数で)呼び出されます。
これは私のUITableViewCell
レイアウトです:あなたはのUITableViewをリロード必要があります(のみ上部、下部、リード、末尾の制約はUIViewの "Outerview" に追加された)
いくつかのコードを投稿できますか?それ以前には、セルの高さが変化していることがわかります。これは、ボタンをパディングに押し付けているのに対し、向きの変更によってセルの高さを変えることで問題ありません。 –
私はいくつかのコードを投稿しました。また、向きに先立って、セル高さは3つのセルすべてで一定です。 (あなたのように変化するのと異なります) –
あなたの質問には答えませんが、[Masonry](https://github.com/SnapKit/Masonry)のようなライブラリを使用している場合は、autolayoutをプログラムで実装する方がはるかに良い時間になります – sjwarner