HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 苹果手表 – 第一次缓慢的图像动画大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个苹果手表的小应用程序.我里面有一个Group和一个Label.要做的是:

>动画组的背景图像
>图像动画结束后,淡入标签

我的代码看起来基本上是这样的

group.setBACkgroundImagenamed("show_BACk-");
        group.startAnimaTingWithImagesInRange(NsmakeRange(0,39),duration: 1.5,repeatCount: 1);
        let delayTime = dispatch_time(DISPATCH_TIME_Now,Int64(1.5 * Double(NSEC_PER_SEC)))
        dispatch_after(delayTime,dispatch_get_main_queue()) { () -> Void in
            self.animateWithDuration(1) { () -> Void in
                self.label.setAlpha(1)
            };
        };

问题是,第一次触发序列,图像动画似乎运行速度慢于1.5秒,因为标签在图像停止改变之前开始衰落.如果在应用程序运行时再次触发,则一切正常工作.我想它与图像预加载或某些东西有关.

如何使其一致工作?我找不到任何类型的回调图像序列动画结束订阅.

编辑
一个我注意到的一个问题:当bg从dispatch_after块中动画化时,还有另外一个例子,当我通过点击表冠离开应用程序并通过双击它返回时,dispatch_after块不被触发,或者背景动画在第一次被调用时不能正确渲染(我认为第二个,因为我尝试在调度块中添加一个断点,并在每次测试时触发它).
我正在运行watchOS2,所以也许这与操作系统目前处于beta状态有关?

解决方法

我遇到了同样的问题.

是因为您第一次尝试时,手表需要时间才能加载图像.苹果也没有给我们任何“预加载”的方法,所以我想出了一些工作:
当我的控制器显示时:

func willActivate()

我在后台播放动画序列,这样当我的用户点击它的图像已经加载.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)) { [weak self] in
            if let uSelf = self {
                uSelf.statusAnimationImage.setImagenamed("my image name")
                uSelf.statusAnimationImage.startAnimaTingWithImagesInRange(NsmakeRange(0,359),duration: 0.5,repeatCount: 1)
            }
        }

这是我找解决这个问题的最好办法,它适用于我.

大佬总结

以上是大佬教程为你收集整理的ios – 苹果手表 – 第一次缓慢的图像动画全部内容,希望文章能够帮你解决ios – 苹果手表 – 第一次缓慢的图像动画所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。