iPhone UIView 动画持续时间只能立即生效

发布于 2024-09-13 02:20:14 字数 465 浏览 5 评论 0原文

这段代码在子类 uiview 的 Touchsend 方法中执行,但是它没有动画,它只是立即更改背景颜色。怎么了?

    self.backgroundColor = [UIColor blackColor];
    [UIView beginAnimations:nil context:NULL];

    [UIView setAnimationDuration:20];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    if (score < .40) {
        self.backgroundColor = [UIColor redColor];
    } else {
        self.backgroundColor = [UIColor greenColor];
    }
    [UIView commitAnimations];

This code is being executed in the touchesended method of a subclassed uiview, however it doesn't animate, it just instantly changes the background color. What is wrong?

    self.backgroundColor = [UIColor blackColor];
    [UIView beginAnimations:nil context:NULL];

    [UIView setAnimationDuration:20];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    if (score < .40) {
        self.backgroundColor = [UIColor redColor];
    } else {
        self.backgroundColor = [UIColor greenColor];
    }
    [UIView commitAnimations];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自我难过 2024-09-20 02:20:14

[UIView commitAnimations] 方法不是阻塞的 - 因此,如果您调用它,它将开始动画,但它将立即执行此点之后的代码。如果它下面有任何改变背景颜色的代码,它会破坏你的动画。

如果这不起作用,请尝试为不同的属性设置动画 - 我清楚地知道我的头顶位置和位置。 alpha 是可动画的,但我不确定颜色。 (Alpha只是一个float值,center只是一个CGPoint,两者都是基元,但UIColor是一个引用类型,而UIView可能不知道如何为指针设置动画。)

The [UIView commitAnimations] method isn't blocking - so if you call it, it will start animating, but it will execute code after this point instantly. If you have any code below it that changes the background color, it will break your animations.

If that doesn't work, try animating a different property - I know off the top of my head position & alpha are animatable, but I'm uncertain of Color. (Alpha is just a float value, and center is just a CGPoint, both of which are primitives, but UIColor is a referenced type and UIView may not know how to animate a pointer.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文