快速旋转 UIImageView 动画

2024-02-02

我正在尝试制作 180 度旋转的动画UIImageView在斯威夫特

    UIView.animateWithDuration(1.0, animations: { () -> Void in
        self.arrowImageView.transform = CGAffineTransformMakeRotation(CGFloat(180 * M_PI))
    }) { (succeed) -> Void in

    }

但根本不是动画。 我想使用 animateWithDuration 因为我想在某个时候使用CGAffineTransformMakeIdentity

Using UIView动画作品。

    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(1)
    UIView.setAnimationCurve(UIViewAnimationCurve.EaseIn)
    let radians = CGFloat(180 * M_PI / 180)
    arrowImageView.transform = CGAffineTransformMakeRotation(radians)
    UIView.commitAnimations()

======= UIView 的扩展 =======

我从互联网上找到了这个答案,并进行了测试,工作得很好。希望这对任何人都有帮助,只需更改UIView根据您的需要,例如,UIView、UIButton、UIImageView等并通过myUIView.rotate()函数,这里myUIView应该replace with 您的视图名称(IBOutlet -> 名称)具有正确的扩展视图类型。这是link http://ioscake.com/uiview-infinite-360-degree-rotation-animation.html我找到了这个答案。而且这个方法简单又有效!

=== SWIFT 3 / 4 ===

extension UIView{
    func rotate() {
        let rotation : CABasicAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
        rotation.toValue = NSNumber(double: M_PI * 2)
        rotation.duration = 1
        rotation.cumulative = true
        rotation.repeatCount = FLT_MAX
        self.layer.addAnimation(rotation, forKey: "rotationAnimation")
    }
}

建议的改进。感谢您的所有建议。

=== SWIFT 5 ===

extension UIView{
    func rotate() {
        let rotation : CABasicAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
        rotation.toValue = NSNumber(value: Double.pi * 2)
        rotation.duration = 1
        rotation.isCumulative = true
        rotation.repeatCount = Float.greatestFiniteMagnitude
        self.layer.add(rotation, forKey: "rotationAnimation")
    }
}

然后像下面这样调用该扩展:

self.your_UIViewOutletName_myUIView_here.rotate()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速旋转 UIImageView 动画 的相关文章

  • 检查定位服务是否开启

    我一直在对 CoreLocation 进行一些研究 最近 我遇到了一个在其他地方 但在 Objective C 和 iOS 8 中 已经讨论过的问题 我觉得问这个问题有点傻 但是如何在 iOS 9 上使用 swift 检查是否启用了位置服务
  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 确定 SceneKit 中 SKVideoNode 的视频大小/长宽比

    如何从 AVPlayer 获取视频的视频大小来设置节点的几何大小 例如 我有一个具有宽度和高度的 SCNPlane let planeGeo SCNPlane width 5 height 5 所以现在我实例化我的视频播放器 let vid
  • 在没有预览窗口的情况下使用 AVCaptureVideoDataOutputSampleBufferDelegate

    我正在开发一个基于 Swift 的 macOS 应用程序 我需要捕获视频输入 但不将其显示在屏幕上 而不是显示视频 我想将缓冲的数据发送到其他地方进行处理 并最终显示它在 a 中的一个物体上SceneKit scene 我有一个Camera
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 在 Swift 中从 UIScrollView 创建 PDF 文件

    我想从 UIScrollView 的内容创建一个 PDF 文件 func createPdfFromView aView UIView saveToDocumentsWithFileName fileName String let pdfD
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 哪些 Flutter 插件或功能可以利用外部 iOS/Android 显示器来显示与主显示器不同的内容

    我正在构建一个跨平台应用程序 需要在外部显示器上显示不同的视图 通常通过连接到 LCD 投影仪的 HDMI 适配器电缆连接 Flutter 是否能够在内置的外部显示器上显示不同的屏幕 在现有的 Flutter 插件中还是使用现有的 Flut
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf

随机推荐

  • 错误 CS0117(“调试”不包含“日志”的定义)

    当游戏对象与另一个游戏对象发生碰撞时 我试图在控制台上显示 我在 Unity 的控制台上不断收到此错误 ERROR CS0117 调试 不包含 日志 的定义 我在 mac 上使用 net core 我使用 vs 代码 1 35 1 和团结2
  • iPhone OS 当前使用情况统计信息(尤其是 2.x 与 3.x)

    我试图找出有多少活跃的 iPhone 和 iPod touch 用户至少安装了 3 0 操作系统 我需要知道运行 2 x 的百分比是否仍然相当大 我尝试查看 AdMob 统计数据和其他操作系统使用统计网站 但我看不到 iPhone 2 x
  • 在 FB 上实时启动应用程序时收到“此应用程序处于开发模式”

    我认为我一切都正确 但我的应用程序尚未上线 它说 这个应用程序处于开发模式 我猜这就是他们过去所说的沙盒模式 但我不知道在哪里将其从开发模式中取消 有人可以帮帮我吗 提前致谢 onkar 发布的解决方案对我不起作用 我认为自从 onkar
  • 在 D3 力布局链接中间显示箭头

    我正在使用 D3 绘制力导向图 这与此示例非常相似 http bl ocks org mbostock 1153292 http bl ocks org mbostock 1153292 我试图将箭头放在链接的中间而不是末端 玩attr r
  • Android Mediamuxer moovatom

    我正在使用录制设备屏幕Mediacodec and Mediamuxerapi 一切都很好 现在我想在录制时流式传输该文件 但直到muxer停止并且 moovatom 被写入文件末尾 所以我的问题是甚至可以使用Mediamuxer为目的 如
  • 为什么 malloc 中的内存不归零?

    我在书中读过 动态内存分配器维护进程的虚拟区域 内存称为堆 详细信息因系统而异 但是 不失一般性 我们将假设堆是一个区域 零需求内存在未初始化之后立即开始 bss 区域并向上增长 向更高的地址 所以 我很困惑为什么堆中的内存没有初始化为零
  • Excel VBA 使用 Workbook.Open 并显示 Dir(Directory) 的结果

    这看起来很简单 我已经让它工作了多次 但是在我的 Dir 调用 迭代目录 和打开当前文件之间 有些东西不断中断 这是相关代码 SourceLoc C ExcelWIP TestSource SourceCurrentFile Dir Sou
  • 面向对象的实现策略

    我目前正在 Squeak 环境中学习 Smalltalk 并且正在阅读 Squeak A Quick Trip To ObjectLand 我带着一些 Python 和 Java 的先验知识进入了面向对象范式 书中第 36 页的这句话让我想
  • 如何使用 FFMPEG 获取视频尺寸[重复]

    这个问题在这里已经有答案了 我的目标是将视频文件传递给 FFMPEG 并获取其尺寸作为输出 我怎样才能实现这一目标 谁能帮我提供示例代码吗 public void GetVideoInfo string input set up the p
  • 通知所有组成员 GitLab 中失败的管道

    目标是让每个人都能收到每个失败管道的通知 由他们自行决定 目前 我们任何人都可以在这个项目分支上运行管道 并且管道的创建者会收到一封电子邮件 而其他人则不会 我尝试将通知级别设置为watch and custom with failed p
  • Mockito - 如何模拟/验证接受新对象的方法调用?

    我有一个想要测试的方法 method1 它根据提供的参数创建一个对象并调用另一个方法 method2 所以我模拟 method2 它接受一个对象 sampleObj public void method1 booleanParam if b
  • 似乎“border-box”不适用于“a”标签的内联块

    我正在尝试整合box sizing但似乎不起作用 任何人都可以帮助我理解这里的问题 现场演示 https jsfiddle net 3gwebtrain b45qjhh5 a display inline block background
  • 如何在 Puppet 2.7 中将数组转换为逗号分隔的字符串

    我正在使用 Puppet 2 7 我需要将数组转换为逗号分隔列表 hosts fqdn host1 host2 host3 我需要将其转换为所需的结果 host1 host2 host3 我猜 Puppet 3 2 提供了 lambda 表
  • 在 VB.NET 中使用带有命名空间的 LINQ

    我有这个 XML 文件
  • O(N) 排列识别

    这个答案 https stackoverflow com a 36818947 2642059通过比较两个字符串的内容来确定它们是否是排列 如果它们包含相同数量的每个字符 那么它们显然是排列 这是在O N time 但我不喜欢这个答案 因为
  • 像渐变一样将图像淡入透明

    我希望将图像 背景图像 淡化为透明 以便实际上可以看到其后面的内容 由于透明度 只能勉强看到 显然 我可以使用 PNG 图像来实现它 但是每次我想要更改开始 gt 停止透明度点时 我都需要要求我的图形设计师更改图像 也许我想要更多的颜色 或
  • shouldStartLoadWithRequest 永远不会被调用

    我研究了又研究 仍然不明白为什么 shouldStartLoadWithRequest 从未被调用 我的页面加载良好 并且调用了一些 UIWebview 委托协议方法 请从下面的我的代码中找到相关片段 在我的 m 中综合我的 webview
  • 在 React 中更新数组

    我来自 Angular 1 x 希望使用 React Redux 更新无序列表 在 console log 中 我看到数组正在更新 但它似乎没有绑定到 DOM 我有以下内容 在输入的 onKeyPress 上 我有一个推送到消息数组的函数
  • 在 jQuery 插件中调用其他插件

    为了清理我的代码 我想在我的实际 jQuery 插件中使用子插件 但实际上没有发生任何事情 提前谢谢 作为一个简单的例子 请看下面的代码 function fn funct function so far it seems to run t
  • 快速旋转 UIImageView 动画

    我正在尝试制作 180 度旋转的动画UIImageView在斯威夫特 UIView animateWithDuration 1 0 animations gt Void in self arrowImageView transform CG