私は、自分自身にCAShapeLayersを使って画像を描画するUIViewのサブクラスを持っています。 UIViewがAutoLayoutによって与えられたどのようなサイズにも図面を適応させたい。私はそれに.bounds.size
から現在のサイズを取得し、フィットするように画像を描画する関数drawGraph()
を与えました。いつUIViewはどれくらいの大きさを知っていますか?
コンテナUIViewControllerのviewDidLoad()
で私の描画関数を呼び出すことから始めましたが、その時点でレイアウトはまだ発生していないので、ストーリーボードにはどんな境界もあります。
ビューコントローラのviewDidLayoutSubviews()
から呼び出してみましたが、それでも問題はありません。それは、ストーリーボードからの境界線で最初に、次に更新された(正しい)境界線で再度呼び出されます。その間に一時停止があり、描画と再描画がユーザーに表示されます。
UIViewのレイアウト制約が適用され、正確な寸法を与える準備ができているかどうかを確認するにはどうすればよいですか?
'viewWillAppear'メソッドでこれを試しましたか? –