gpt4 book ai didi

cocoa-touch - 动画内在内容大小的变化

转载 作者:行者123 更新时间:2023-12-03 06:10:36 25 4
gpt4 key购买 nike

我有一个 UIView 子类,它绘制一个半径变化的圆(带有漂亮的弹性动画)。 View 决定了圆的大小。

我希望这个 UIView 子类更改其帧大小以匹配对圆半径的动画更改,并且我希望这些更改能够修改连接到 View 的任何 NSLayoutConstraint(以便约束到圆边缘的 View 将随着圆圈大小的调整而移动)。

我知道实现 -(CGSize)intrinsicContentSize 并在半径更改时调用 invalidateIntrinsicContentSize 将告诉约束进行更新,但我不知道如何将更改动画化内在内容大小

从 [UIView animateWith... block 中调用 invalidateIntrinsicContentSize 会立即更新布局。

这是否可能,是否有解决方法/更好的方法?

最佳答案

invalidateIntrinsicContentSize 与动画和 layoutIfNeeded 配合得很好。您需要考虑的唯一一件事是,更改内在内容大小会使 super View 的布局无效。所以这应该有效:

[UIView animateWithDuration:0.2 animations:^{
[self invalidateIntrinsicContentSize];
[self.superview setNeedsLayout];
[self.superview layoutIfNeeded];
}];

关于cocoa-touch - 动画内在内容大小的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17154008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com