仅在最终位置显示旋转动画 iOS swift

约安·威尔

我正在尝试实现自定义活动指示器,它是简单的旋转 UIImageView。我有下一个代码

import Foundation
import UIKit

class CatSpinnerAnimation: UIView {

let catImageView: UIImageView = {
    let catImageView = UIImageView()
    catImageView.image = UIImage(named: "CatDateIcon-1024")
    catImageView.translatesAutoresizingMaskIntoConstraints = false
    return catImageView
}()

func startRotating(superView: UIView) {
    superView.addSubview(catImageView)
    UIApplication.shared.beginIgnoringInteractionEvents()
    catImageView.centerXAnchor.constraint(equalTo: superView.centerXAnchor).isActive = true
    catImageView.centerYAnchor.constraint(equalTo: superView.centerYAnchor).isActive = true
    catImageView.widthAnchor.constraint(equalToConstant: 50).isActive = true
    catImageView.heightAnchor.constraint(equalToConstant: 50).isActive = true



    let rotate = CGAffineTransform(rotationAngle: CGFloat.pi)

    UIView.animate(withDuration: 5.0) {
        self.catImageView.transform = rotate
    }

}



func stopRotating(superView: UIView) {
    UIApplication.shared.endIgnoringInteractionEvents()
    catImageView.removeFromSuperview()

}
}

在我的 ViewControllers 中,我实例化了这个类的一个实例并调用它的函数

    let catSpinnerAnimation = CatSpinnerAnimation()
    catSpinnerAnimation.startRotating(superView: view)

但这根本不显示旋转动画,只是我的 ImageView 处于最终位置(旋转了 189 度)。我尝试了多种类型的动画,但仍然没有必要的结果。我将不胜感激旋转动画的正确行为的任何解释

邓肯

我认为您可能需要先将视图添加到视图层次结构中,然后才能对其进行动画处理。尝试将您的呼叫包装UIView.animate()在呼叫中DispatchQueue.main.asyncAfter(deadline: .now() + .01) {}

这将使您的视图添加到视图层次结构并在您提交动画之前进行渲染。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift UI中停止旋转动画

来自分类Dev

使用CGAffineTransformRotate的ios旋转动画

来自分类Dev

iOS - MapKit 相机旋转动画

来自分类Dev

iOS 7创建翻转动画,例如在本机相机应用中旋转动画

来自分类Dev

Swift-IOS:UIalertController位置

来自分类Dev

iOS Swift动画-将图像移到新位置

来自分类Dev

iOS Swift动画-将图像移到新位置

来自分类Dev

旋转UIImage中的问题-IOS / Swift

来自分类Dev

在7.3 / 9/2 +中,当设备旋转时,Swift如何禁用旋转动画?

来自分类Dev

iOS Swift方向更改动画丢失

来自分类Dev

iOS Swift UIView动画跳回到开头

来自分类Dev

iOS Swift方向更改动画丢失

来自分类Dev

iOS Swift:UIViewControllerAnimatedTransitioning结束帧位置错误

来自分类Dev

位置经理代表不称为iOS swift

来自分类Dev

iOS Swift获取当前位置更新

来自分类Dev

iOS-Swift-collectionView标头的位置

来自分类Dev

导航栏未显示iOS Swift

来自分类Dev

使用Swift在iOS App中显示SSID

来自分类Dev

下载的图片未显示iOS Swift

来自分类Dev

API无法在Swift for iOS中显示数据

来自分类Dev

下载的图片未显示iOS Swift

来自分类Dev

在Swift / iOS中获取动画期间的动画高度

来自分类Dev

如何仅在首次启动IOS Swift时显示页面控制器

来自分类Dev

iOS Swift:无需调整大小即可旋转和缩放 UIView

来自分类Dev

SpriteKit Swift动画仅一次显示在一个Sprite上-iOS

来自分类Dev

仅在存档时才发生iOS Swift编译错误

来自分类Dev

iOS,Swift:动画由手势控制

来自分类Dev

如何从iOS中的动画UIView创建视频(Swift / ObjC)?

来自分类Dev

为什么我的CAShapeLayer无法设置动画?(iOS Swift)