私はUITableViewサブビューを持つUIViewを持っています。サブビューを持つUIViewのサイズをアニメ化する
UIViewは、最初はデバイスの幅の50%の幅を持つメニューで、UITableViewはUIViewに対してAutoLayoutの制約を持っています。
メニューの項目を選択すると、UIViewがデバイスの幅の33%にリサイズされます。 UITableViewは、私が予想したように、アニメーションなしでサイズを変更し、UIViewがアニメーションを介してキャッチアップします。
AutoLayoutの制約を維持しながらUIViewで私のUITableViewを簡単にアニメーション化する方法はありますか?私はUIViewのと同じアニメーションブロック内で、次のことを試してみた
:
let tableWidth = self.mm.menuOneController.tableView.bounds.size.width
let newTableWidth = (tableWidth * 2)/3
self.mm.menuOneController.tableView.bounds.size.width = newTableWidth
これは動作します、のUITableViewはUIViewのアニメーションと一緒にリサイズされた、しかし、自動レイアウトはとしてはかなりない作業を行います私は期待したい。
UIViewのX値は0.0なので、スーパービューの左側に固定されています。サイズ変更すると、右側のサイズから固定されます。しかし、正しい幅に達するまで、UITableViewは左右両方に均等にサイズ変更されているようです(私は理にかなっていることを望みます)。
提案がありますか?
ありがとうございます!
各状態で制約が曖昧でなく、最終的なアニメーション状態の制約を調整した場合、UIView.animate ...内の単純な 'layoutIfNeeded()'(共通のスーパービュー上)がトリック。 – Alladinian
ありがとうございます! – nickjf89