gpt4 book ai didi

iphone - 动画 UIView 及其子层

转载 作者:行者123 更新时间:2023-12-03 19:23:09 25 4
gpt4 key购买 nike

我有一个子类 UIView,它由多个层组成(主要是 CAShapeLayers 和一些 CATextLayers)。我遇到的问题是,如果我使用动画 block (beginAnimationscommitAnimations)对 UIView 大小进行动画调整,并且重新布局覆盖的 layoutSubviews 中的子图层,然后图层不会使用 UIView 进行动画处理。

下面是我的代码,用于为 UIView 的框架设置动画:

miniView.backgroundColor = [UIColor orangeColor];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationRepeatCount:MAXFLOAT];
[UIView setAnimationRepeatAutoreverses:YES];

miniView.frame = newFrame;

[UIView commitAnimations];

所以问题是 View 已正确动画化,但子图层却没有。我可以看到 View 增长和缩小,但子层立即增长,然后保持新的更大尺寸。调整 View 大小时调整 View 子图层大小的最佳方法是什么?我如何以与父 View 相同的方式使它们具有动画效果?

最佳答案

我需要查看更多代码才能真正解决问题,但是您可以尝试对 miniView 的图层而不是其 View 进行动画处理。

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
animation.fromValue = [NSNumber numberWithFloat:0.0];
animation.toValue = [NSNumber numberWithFloat:1.0];
// additional setup...

[miniView.layer layoutIfNeeded];
[miniView.layer addAnimation:animation forKey:@"whateverYouWant"];

一旦你掌握了它的窍门,它应该更加灵活,而不是使用 UIKit 动画。

关于iphone - 动画 UIView 及其子层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400837/

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