У меня есть подкласс UIView, который рисует изображение с помощью CAShapeLayers. Я хочу, чтобы рисунок адаптировался к любому размеру, который UIView задает AutoLayout. Я дал ему функцию drawGraph()
, которая получает свой текущий размер от .bounds.size
, а затем рисует картинку, чтобы соответствовать.
Я начал с вызова функции рисования в контейнере UIViewController viewDidLoad()
, но на тот момент макет еще не был выполнен, поэтому он имеет те границы, которые были в раскадровке.
Я попытался вызвать его из viewDidLayoutSubviews()
контроллера представления, но это тоже не совсем удовлетворительно. Он вызывается дважды: сначала с границами из раскадровки, затем снова с обновленными (правильными) границами. Между ними есть пауза, поэтому рисование и перерисовка видны пользователю.
Как узнать, были ли применены ограничения макета к UIView и готовы ли они дать мне точные размеры?
viewWillAppear
? - person Dharmesh Kheni   schedule 08.08.2016