私は半径が変化する円を描画するUIViewサブクラスを持っています(素敵なバウンシーアニメーションで)。ビューは円のサイズを決定しています。アニメーションintrinsicContentSizeの変更
このUIViewサブクラスの円の半径に対するアニメーション化された変更に合わせてフレームサイズを変更し、ビューに接続されているNSLayoutConstraintsを変更するようにしたい(サークルのエッジに制限されたビューサークルのサイズが変更されると移動します)。
半径を変更したときにを呼び出すとを呼び出すと、制約が更新されることがわかりますが、変更をintrinsicContentSize
にアニメートする方法はわかりません。
[UIView animateWith ...ブロック内からinvalidateIntrinsicContentSize
を呼び出すと、ただちにレイアウトが更新されます。
これは可能なのでしょうか?回避策とより良いアプローチがありますか?
これはできないと感じています。 'intrinsicContentSize'のフォントサイズの関数である' UILabel'の例を見てください。しかし、フォントの変更をアニメートする良い方法はありません。ラベルの回避策は、レイヤのトランスフォームの変更を(CAAnimationを使用して)アニメートし、アニメーションが完了した後にフォントを変更することです。 – Robert