gpt4 book ai didi

ios - 使用 CGAffineTransformScale 自定义 UIView 缩放

转载 作者:可可西里 更新时间:2023-11-01 05:12:42 27 4
gpt4 key购买 nike

我正在学习为 iOS 开发,作为教育过程的一部分,我创建了自定义 UIView,它使用 drawRect 来绘制它的内容(Core Graphics + UIBezierPath 基于)。一切都按预期工作, View 是动态的,并根据它的宽度/高度呈现它的内容。现在我想添加溶解动画,它应该看起来像从 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];

但是,此代码不会将我的 View 从 100% 缩放到 0%。它只会让卡片消失(最多)。我尝试了很多缩放方法,但到目前为止我只达到了从 0% 缩放到 100% 的效果。这是我的观点完美的,但不是反向缩放......此外,即使我尝试应用非动画转换,它也不会放大/缩小,例如:

cardView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.5, 0.5);

我看到我的 View 外观发生了一点变化,但没有缩放到 50%,这是肯定的。当我尝试将完全相同的动画逻辑应用于 UILabel 时,它完美地工作了!我在开发自定义 UIView 时错过了什么?为什么缩放 View 可能会出现故障?非常感谢!

UPDATE #1 此代码使我的 View 正好放大两倍,然后将其缩放回原始大小:

[UIView animateWithDuration:5 delay:0
options: UIViewAnimationOptionBeginFromCurrentState
animations: ^{
for (CardView *cardView in self.cardsViews) {
cardView.transform = CGAffineTransformMakeScale(0.5, 0.5);
}
} completion:nil];

最佳答案

使用 CGAffineTransformScale 从 100% 到 0% 很简单:

cardView.view.transform =CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);

[UIView animateWithDuration:0.3/1.5 animations:^{
cardView.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.1, 0.1);
} completion:^(BOOL finished)
{
NSLog(@" Animation complet Block");
}];

关于ios - 使用 CGAffineTransformScale 自定义 UIView 缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121203/

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