【发布时间】:2014-03-01 22:25:24
【问题描述】:
我正在学习为 iOS 开发,作为教育过程的一部分,我创建了自定义 UIView,它使用 drawRect 绘制其内容(基于核心图形 + UIBezierPath)。一切都按预期工作,视图是动态的,并根据其宽度/高度呈现其内容。现在我想添加溶解动画,看起来应该从 100% 缩放到 0%。我已经写了这段代码来做到这一点:
[UIView animateWithDuration:1 delay:0
options: UIViewAnimationOptionBeginFromCurrentState
animations: ^{
for (CardView *cardView in self.cardsViews) {
cardView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.01, 0.01);
}} completion:nil];
但是,此代码不会将我的视图从 100% 缩放到 0%。它只会让卡片消失(最多)。我尝试了很多缩放方法,但到目前为止我达到的唯一效果是从 0% 缩放到 100%。这是我的观点完美,但不是反向缩放......此外,即使我尝试应用非动画转换,它也不会放大/缩小,例如:
cardView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.5, 0.5);
我看到我的视图外观发生了一点变化,但没有缩放到 50%,这是肯定的。当我尝试将完全相同的动画逻辑应用于 UILabel 时,它可以完美运行!开发自定义 UIView 我错过了什么?为什么缩放视图可能会出现故障? 提前非常感谢!
更新 #1 此代码使我的视图正好大两倍,然后将其缩放回原始大小:
[UIView animateWithDuration:5 delay:0
options: UIViewAnimationOptionBeginFromCurrentState
animations: ^{
for (CardView *cardView in self.cardsViews) {
cardView.transform = CGAffineTransformMakeScale(0.5, 0.5);
}
} completion:nil];
【问题讨论】:
-
您是否尝试过添加动画选项
UIViewAnimationOptionAllowAnimatedContent? -
谢谢。是的,我试过了。没运气。此外,即使没有动画,我的自定义视图也不会缩放...
-
@Serzhas 你用这个有什么收获吗?
-
是的,我记得我以某种方式解决了这个问题,但那是很久以前的事了,我不再从事那个项目了,所以我无法检查代码......抱歉。 ??????
标签: ios uiview transformation