I have a UIView subclass that draws a circle whose radius changes (with nice bouncy animations). The view is deciding the size of the circle.
I want this UIView subclass to change its frame size to match the animated changes to the circle radius, and I want these changes to modify any NSLayoutConstraints connected to the view (so that views that are constrained to the edge of the circle will move as the circle resizes).
I understand that implementing -(CGSize)intrinsicContentSize
and calling invalidateIntrinsicContentSize
when the radius changes will tell constraints to update, but I cant figure out how to animate the changes to intrinsicContentSize
.
Calling invalidateIntrinsicContentSize
from within a [UIView animateWith... block just instantly updates the layout.
Is this even possible, and is there a workaround/better approach?
UILabel
itsintrinsicContentSize
is a function of its font size. However there is no nice way to animate a font change. The workaround for the label is to animate its layer's transform change (using aCAAnimation
) then to change the font after the animation is complete - Not nice. – Tammy