У меня есть подкласс UIView, который рисует круг, радиус которого изменяется (с хорошей анимацией). Вид определяет размер круга.
Я хочу, чтобы этот подкласс UIView изменил размер своего кадра, чтобы соответствовать анимированным изменениям радиуса круга, и я хочу, чтобы эти изменения изменили любые ограничения NSLayoutConstraints, связанные с представлением (так, чтобы представления, ограниченные краем круга, перемещались по мере того, как размер круга меняется).
Я понимаю, что реализация -(CGSize)intrinsicContentSize
и вызов invalidateIntrinsicContentSize
при изменении радиуса сообщат ограничениям об обновлении, но я не могу понять, как анимировать изменения в intrinsicContentSize
.
Вызов invalidateIntrinsicContentSize
из блока [UIView animateWith... просто мгновенно обновляет макет.
Возможно ли это вообще, и есть ли обходной/лучший подход?
UILabel
, егоintrinsicContentSize
зависит от размера шрифта. Однако нет хорошего способа анимировать изменение шрифта. Обходной путь для метки - анимировать изменение преобразования ее слоя (используяCAAnimation
), а затем изменить шрифт после завершения анимации - нехорошо. - person Robert   schedule 16.08.2013