iOS开发之动画篇-基础篇1

2023-11-13

基础篇:

一.制作动画的原理

十二个基本的动画原理:网页动画的十二原则(参考全部开源的HTML和CSS代码实现)

二.寻找灵感
1.知名设计师共享平台:Dribbble相当于程序员的gitHub

2.pttrns:手机设计较多

三.制作动画的基础
1.iOS动画UIView动画概述
这里写图片描述

苹果给开发者的UIView实现API:UIView.animateWithDuration

四.一些动画的特效实现
1.Position

这里写图片描述

如图,放置三个不同颜色的View,给它们设置position位移动画

swift代码

这里写图片描述

.swift代码部分

import UIKit

class PositionViewController: UIViewController {

    @IBOutlet weak var blueView: UIView!
    @IBOutlet weak var pickView: UIView!
    @IBOutlet weak var greenView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    override func viewDidAppear(_ animated: Bool) {
        UIView.animate(withDuration: 1) {

            self.blueView.center.x = self.view.bounds.width - self.blueView.center.x;
        }

        UIView.animate(withDuration: 1, delay: 0.5, options: UIViewAnimationOptions.layoutSubviews, animations: {

            self.pickView.center.y = self.view.bounds.height - self.pickView.center.y;

        }, completion: nil)

        UIView.animate(withDuration: 1, delay: 1, options: UIViewAnimationOptions.layoutSubviews, animations: {

            self.greenView.center.x = self.view.bounds.width - self.greenView.center.x;
            self.greenView.center.y = self.view.bounds.height - self.greenView.center.y;
        }, completion: nil)
    }

我们可以使用delay设置动画执行顺序,也如果需要同时开始动画,可以写在一个animate里面。

UIView.animate(withDuration: 1) {

            self.blueView.center.x = self.view.bounds.width - self.blueView.center.x;
            self.pickView.center.y = self.view.bounds.height - self.pickView.center.y;
            self.greenView.center.x = self.view.bounds.width - self.greenView.center.x;
            self.greenView.center.y = self.view.bounds.height - self.greenView.center.y;
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS开发之动画篇-基础篇1 的相关文章

  • 捕获 SwiftUI 中的错误

    我在某些视图中有一个按钮 它调用 ViewModel 中可能引发错误的函数 Button action do try self taskViewModel createInstance name self name catch Databa
  • 某些网站如何在 iOS Safari 中内嵌播放视频?

    非常令人难以置信 因为我认为所有视频都可以在常规野生动物园中扩展为全屏播放 例如检查一下 https entertainment theonion com the onion reviews rogue one 1819596116 htt
  • cellForRowAtIndexPath:未调用

    我的应用程序有两种状态 已登录和未登录 并且我有以下架构 大大简化 ViewController A 包含一个搜索框和一个表视图 ViewController B 用于登录应用程序 流程如下 用户未登录 A 被压入堆栈 在viewWillA
  • 当我收到推送通知时如何重新加载表格视图?

    我有一个 iPhone 应用程序 我要在其中添加推送通知 当我收到推送通知时 我需要转到一个特定的视图 在该视图中 我在调用后加载表视图网络服务 http en wikipedia org wiki Web service这里 问题是当我站
  • 为什么我的唯一设备 ID 发生了变化?

    我已经使用以下方法大约一个月了 没有任何问题 即使卸载应用程序后 设备 ID 仍保持不变 最近我注意到我的设备 ID 发生了变化 我最近在 Xcode6 上做了很多应用程序的构建 这可能是一个原因吗 我希望我确切地知道它什么时候发生变化 这
  • 自动布局中的“使用标准值”和“限制边距”是什么意思?

    我已经完成了一些自动布局教程 例如this https developer apple com library ios recipes xcode help IB auto layout chapters pin constraints h
  • UIViewControllerHierarchy不一致

    我正在尝试构建我的应用程序 有一次我推送了 UIViewController 然后收到此错误 我不太清楚为什么 UIViewControllerHierarchyInconsistency 原因 视图只能是 一次最多与一个视图控制器关联 查
  • 升级到 SDK 4.1 后 Facebook 登录失败(总是 isCancelled)

    我已在 iOS 应用程序中将 Facebook SDK 从 3 21 1 升级到 4 1 已上线 我仔细遵循升级指南 并实施了新的登录方法 我使用的代码是 Facebook 文档中提供的代码 但是自从升级以来 每次我尝试登录 设备或模拟器
  • 为什么数据没有填充在我的自定义 ui 表视图单元格中

    我正在从服务器获取数据 我想将其放入我的自定义 UITableViewCell 中 这是故事板中的单元格 如您所见 有两件事 首选项标签 三个按钮 当我从服务器接收数据时 我这样做 override func tableView table
  • Google Analytics Pod 安装了太多依赖项

    我刚刚添加了 Google Analytics Pod 如中所述他们的 iOS 开发者指南 https developers google com analytics devguides collection ios v3 with pod
  • iPhone 旋转时 CALayer 自动旋转

    我有一个 UIViewController 其中我将 CALayer 子类添加到视图层 self view layer addSublayer myObject backgroundLayer 当我旋转设备时 视图会旋转 但 CALayer
  • Swift AVCaptureSession 关闭打开按钮错误:当前不支持多个音频/视频 AVCaptureInputs

    我有一个可用的条形码扫描仪代码 当我点击openCamera按钮 第一次一切都很好 当我点击closeCamera按钮 很好 但是如果我再次点击openCamera按钮给出致命错误 代码和错误如下 事实上 是否可以一键切换相机视图 Barc
  • iOS 如何以编程方式简单返回到先前呈现/推送的视图控制器?

    如何以编程方式返回到先前的视图控制器 我找到了这个answer https stackoverflow com questions 28760541 programmatically go back to previous viewcont
  • HTML5 Safari iOS 仅访问相机而不访问照片库

  • 应用内购买导致偶尔崩溃

    我在互联网上搜索了这方面的帮助 但没有结果 我的应用程序已在应用程序商店中上线 少数用户报告应用程序在进行应用内购买后冻结并崩溃 我的游戏中唯一的 IAP 它基本上解锁了完整版本 即使他们重新启动设备并尝试继续 设备也会再次崩溃 我无法重现
  • 为什么 NSOrderedSet 不继承 NSSet?

    当然 有序集是集合的更具体的情况 那么为什么NSOrderedSet继承自NSObject而不是NSSet 我通过了界面NSSet你是对的 有序集似乎满足里氏替换原则 http en wikipedia org wiki Liskov su
  • 获取 PHAsset 的本地文件路径

    我希望我的用户能够在 Instagram 上分享一张照片 并且我需要获取该照片的本地文件目录 不过 我将图像作为 PHAsset 获取 而不是 ALAsset 所有其他答案似乎都涵盖了这个主题 查看 PHAsset 文档 我没有看到 本地目
  • 如何在 UIButton 中创建边框?

    我在名为 addButton 的应用程序中使用自定义按钮 我想用白色边框它 如何在自定义按钮周围获得白色边框 您可以通过访问按钮的图层属性来设置 CALayer 上的边框属性 首先 添加石英 import
  • UIAlertController 的弹出框变形

    我使用 UIToolbar 中的 UIAlertController 和首选操作表样式向用户呈现选项列表 呈现时 弹出框的箭头被切断 其角以两种不同的半径圆化 据我所知 我用来展示它的代码直接来自文档 UIAlertController a
  • UISearchController 在调用时更改状态栏颜色

    我的应用程序中有以下代码 特别是在viewDidLoad 这设置了我的UISearchController self searchController UISearchController alloc initWithSearchResul

随机推荐

  • DR数字成像平板探测器的主要特性

    平板探测器是DR和CT的核心部件 其性能对图像质量影响很大 随着市面上探测器的品牌和型号越来越丰富 价格也是有高有低 让人挑起来眼花缭乱 下面整理了一些探测器的主要特性及简单分析 希望对大家在数字成像中探测器的选型有所帮助 实时成像中动态图
  • 深度之眼(十)——矩阵特征值与特征向量

  • 机器学习算法系列(二十一)-k近邻算法(k-Nearest Neighbor / kNN Algorithm)

    阅读本文需要的背景知识点 一丢丢编程知识 一 引言 前面一节我们学习了机器学习算法系列 二十 梯度提升决策树算法 Gradient Boosted Decision Trees GBDT 是一种集成学习的算法 这一节我们来学习一个相对简单直
  • Python 3.6打包成EXE可执行程序

    Python 3 6打包成EXE可执行程序 下载pyinstaller python 3 6 已经自己安装了pip 所以只需要执行 pip install pyinstaller就可以了 打包程序 进入到你你需要打包的目录 比如我在H xc
  • python爬虫工程师面经(2023年金三银四)

    python爬虫工程师面经 前言 面经总结 发展相关问题 爬虫基础相关问题 工作经验相关问题 总结 前言 过年期间 经过自我慎重的考虑后 终于决定在2月份向公司提出了辞职 说实话很慌 也做好了长时间找不到工作的准备 只是继续呆在公司对自我发
  • 用Kettle实现转换和作业例子

    一 转换 双击Kettle目录下的Spoon bat脚本 启动Kettle工具 在工具栏处选择 文件 新建 转换 命令 创建一个转换 名称默认是 转换1 选择 文件 保存 命令 可以对转换进行重命名以及选择转换保存路径 重命名为exampl
  • Java多线程-线程池ThreadPoolExecutor的submit返回值Future

    一般使用线程池执行任务都是调用的execute方法 这个方法定义在Executor接口中 public interface Executor void execute Runnable command 1 2 3 这个方法是没有返回值的 而
  • 微信企业号的基本配置流程(新手,勿喷!)

    一 登录微信公众号 确认登录的公众号为企业认证 二 打开开发里面的基本配置 如图 三 根据你的项目后台微信配置里面需要的数据 来在微信公众号的后台找到 然后 一一对应的写入你的项目后台的微信配置 如图 这是我的项目后台微信配置 四 按照自己
  • 《统计学习方法》学习笔记(一):概论

    统计学习方法三要素 模型 策略和算法 策略是想要最优解 模型给定输入 训练 得到输出 算法处理信息的方法 模型选择 正则化 交叉验证与学习泛化的能力 正则化 防止过拟合 简单来说是限制在规则之内 减小误差的行为 规则化 给需要训练的目标函数
  • Oracle的锁表与解锁

    Oracle的锁表与解锁 SELECT rule s username decode l type TM TABLE LOCK TX ROW LOCK NULL LOCK LEVEL o owner o object name o obje
  • Java学习:使用Freemarker导出简单的Word文档

    一 准备工作 准备想要导出的word文档的模板 准备maven的依赖
  • 实验室服务器conda使用教程

    目录 前言 1 下载conda 2 安装conda 3 检查conda是否安装成功 4 配置conda镜像 5 创建conda环境 6 在环境中安装模型所需的库文件 7 conda的其他用法 8 服务器离线安装python库文件 以torc
  • ubuntu下移植Qt软件

    export PATH home ubuntu yhj plugins PATH export QTDIR home ubuntu yhj plugins export LD LIBRARY PATH QTDIR lib LD LIBRAR
  • Kvrocks 在 RocksDB 上的优化实践

    不久前 Kvrocks 发布 2 0 5 版本 该版本不仅增加了许多新功能 还使用了RocksDB 的新特性大大提升了性能 本文将重点介绍 Kvrocks 是如何使用这些特性来提升磁盘类型 Redis 服务的性能 希望能给大家带来一些参考
  • mock.js文档详解1及下载(数据模板)

    作用 生成随机数据 拦截Ajax请求 mock数据模板的书写规则 属性名 规则 属性值 规则共有七种 1 name min max value 针对value的不同类型会有不同意义 2 name count value 3 name min
  • 手机按键失灵怎么修复_手机触摸屏失灵了怎么办,六种方法自己就能修好它!...

    你是否碰到这种抓狂的时候 手机屏幕总是要按多几下才能反应过来 有时点了好几下也依然没反应 其实 发生这样的触屏失灵的问题 也是有多方面的原因造成 有时是外在的客观原因引起 有时是个人的主观因素导致 如今 我们的手机绝大多数都是电容屏的 而电
  • 2022全国高校计算机能力挑战赛决赛python组编程计挑赛决赛3

    输入格式 一个日期 格式 年 月 日 1 算法中要能够自动对输入的日期进行判断 若年份不是2022年或月份不是1月份至8月份中的某一个月份值 则输出 数据输入错误 2 算法中能够对输入的 日 的数字进行判断 要按照实际情况进行判断 如1 3
  • ChatGLM2-6B! 我跑通啦!本地部署+微调(windows系统)

    ChatGLM2 6B 我跑通啦 windows系统 1 跑通了啥 2 咋跑通的 2 1 ChatGLM2 6B本地部署 2 2 ChatGLM2 6B本地微调 2 3 小结 3 打算做什么 1 跑通了啥 记录一下此时此刻 2023年7月8
  • pythonSDK安装+Visual Studio Code

    安装PythonSDK 点击去下载python的SDK https www python org 去下载 双击 下载好的安装包 等待安装可能会很慢 如何验证是否成功安装了python的SDK Windows电脑 打开 CMD 窗口 如何打开
  • iOS开发之动画篇-基础篇1

    基础篇 一 制作动画的原理 十二个基本的动画原理 网页动画的十二原则 参考全部开源的HTML和CSS代码实现 二 寻找灵感 1 知名设计师共享平台 Dribbble相当于程序员的gitHub 2 pttrns 手机设计较多 三 制作动画的基