类似 IOS 7 天气 APP 的过渡/动画

2024-01-11

我想实现iOS天气应用程序,如转换、ListView,点击列表项它会展开到详细视图,或者捏合列表也会展开到详细视图。

左右滑动过渡。请让我知道如何实施。

提前致谢。


Here is 我在博客上找到的一些帖子 http://www.teehanlax.com/blog/custom-uiviewcontroller-transitions/这解释了 Apple 在 iOS 7 上新的 Transitioning API,仔细阅读它。


简而言之,步骤如下

1 - 在控制器上设置转换委托

您可能需要自定义 3 种类型的过渡:

  • UINavigationController推入和弹出转换
  • UItabBarController选项卡更改转换
  • 任何模态演示presentViewController:animated

这 3 种情况中的每一种都提供了自己的“转换委托”协议:

  • UINavigationControllerDelegate
  • UITabBarControllerDelegate
  • UIViewControllerTransitioningDelegate

当您从代码中的某个位置使用演示方法时:

  • pushViewController:animated: or popViewControllerAnimated:
  • setViewControllers:animated:
  • presentViewController:animated

然后,如果需要动画,这些代表会要求我所谓的“动画师”。

我所说的“动画师”是一个符合协议的对象<UIViewControllerAnimatedTransitioning> (or <UIViewControllerInteractiveTransitioning>在交互转换的情况下,例如手势驱动的交互)。这将动画与你的UIViewControllers(里面可能已经有大量代码)

2 - 写“动画师”

这是负责动画转换的对象。这可以是一个 viewController,也可以是一个全新的 NSObject。

对于 UINavigationController,您可以为推送和弹出操作定义不同的动画器。

3 - 将动画所需的属性添加到动画制作器中,并对动画进行编码

“动画师”可能会实现不同的协议,具体取决于您尝试自定义的转换。 对于非交互式动画,有以下方法:

  • - (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext:定义动画的持续时间

  • - (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext这就是牛肉的去向。请参阅上面链接中的示例代码,

  • - (void)animationEnded:(BOOL)transitionCompleted播放动画后进行任何清理。


在您的情况下,您可能需要添加一些“原点”和“目标”UIView动画师类中的属性(当然是弱属性!)

然后,当您检测到用户点击了“哪个”视图时。 (在你的UITableVIewDelegate or UICollectionViewDelegatedidSelect 方法),您告诉动画师,以便它可以使用该特定帧进行动画处理,然后根据您的导航逻辑调用 'push'、'pop' 或 'presentViewController' 。

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

类似 IOS 7 天气 APP 的过渡/动画 的相关文章

  • 未修改的 iOS7 Apple GLPaint 示例混合问题

    在苹果的GLPaint https developer apple com library ios samplecode GLPaint Introduction Intro html例如 用户可以使用半透明画笔在表面上绘图并改变颜色 然而
  • 检查 iOS 7 或更早版本的最佳方法? [复制]

    这个问题在这里已经有答案了 我需要根据我运行的 iOS 版本重新配置一些 UI 因此我需要一种检查 iOS 版本的好方法 目前我正在这样做 if UIDevice currentDevice systemVersion isEqualToS
  • IOs7 应用程序在后台崩溃

    我的应用程序有时会在后台崩溃并显示以下崩溃日志 Nov 7 12 33 31 iPad backboardd 29
  • 每当使用 AVSpeechSynthesizer 读取文本时,仪器都会报告内存泄漏

    每次我使用 AVSpeechSynthesizer 朗读文本时 Instruments 都会报告 AXSpeechImplementation 库中的内存泄漏 这是我用来拨打电话的代码 AVSpeechUtterance speak AVS
  • 从 Storyboard/xib 文件修改 UIImage 渲染模式

    是否可以修改一个UIImage s renderingMode来自故事板或 xib 编辑器 目标是申请tintColor对特定的UIImageView object 您可以在不设置图像渲染模式 xib文件 但是在一个 xcassets图书馆
  • 从代码中获取全局色调颜色

    有没有办法通过代码从我的项目中获取全局色调颜色 为了避免误解 我指的是全局色调 我可以在文件检查器中设置它 Easy 目标C UIColor tintColor self view tintColor Swift let tintColor
  • iOS 7 中的后台任务间隔时间

    我在 appdidEnterBackground 中有以下代码 我看到在 IOS 6 中我看到后台时间段约为 10 分钟 而 IOS 7 中的相同代码打印 2 分钟 这是代码 void applicationDidEnterBackgrou
  • 当用户点击 iPhone 屏幕上的任意位置时,iOS7 中的 UIActionSheet 会消失

    我注意到在iOS 7 a UIActionSheet automatically dismisses when a user taps anywhere on the screen on an iPhone iOS 6 中并非如此 并且会导
  • 适用于 iOS 7 AVSpeechSynthesisVoice 的 BCP-47 语音代码有哪些?

    今天我对 iOS 7 中提供的语音合成功能感到非常兴奋 我想选择男声 OSX 中默认为 alex 我不知道他的 BCP 47 代码是什么 顺便说一句 如何获取所有语音代码的完整列表 iOS 8 添加了希伯来语 iOS 9 到 12 中没有添
  • 如何更新 StatusBar 样式作为自定义转换的一部分

    我使用的是 iOS 7UIviewControllerAnimatedTransitioning呈现模式的协议ViewController带有自定义动画 动画工作正常 但是我想要新呈现的ViewController具有与当前 VC 不同的状
  • iOS topLayoutGuide 使用子视图控制器 iOS 7 和 iOS 8 之间的差异

    基本上我正在尝试解决与此相同的问题question https stackoverflow com questions 19140530 toplayoutguide in child view controller正在问 但是 当我在 i
  • 使用视觉格式 NSLayoutConstraints 居中视图

    我正在尝试使用视觉格式语言将视图居中 self view addConstraints NSLayoutConstraint constraintsWithVisualFormat H progressView 300 options NS
  • IOS 7 UITextField resignFirstResponder 坏

    当我在自定义单元格内使用 UItextField 时 以及当我 resignFirstResponder 文本字段时 我发生崩溃 但它不再可见 表视图滚动到窗口外 我仍然可以找到文本字段 指针继续可访问 它不为空 并且崩溃仅发生在 IOS7
  • iOS7 无法隐藏状态栏

    我刚刚将我的 iPhone 5 iOS 7 升级到了四个测试版 现在 当我在这台 iPhone 上通过 Xcode 5 运行我的应用程序时 状态栏不会隐藏 尽管它应该隐藏 不工作 UIApplication sharedApplicatio
  • 缺少常规选项卡

    我刚刚切换到使用 Xcode 5 我已经用一些需要更改的其他设置更改了我的应用程序的名称 但是当我执行此操作时 我注意到我的 常规 选项卡丢失了 有谁知道为什么会发生这种情况 只是快速更新如何在 Xcode 8 中执行此操作
  • 水平分隔符导航栏 IOS 7

    我已经包含了对导航栏 navigationController 的需求 其与栏视图控制器的背景色调相同 现在我有一个问题 在导航栏和视图之间我有一条水平线将它们分开 就像你一样从图片中可以看到 你能告诉我如何删除这条水平黑色线并使其更加一致
  • iOS 7 即席构建安装挂起并显示安装消息

    在构建应用程序时 我添加了有效的架构体系结构作为armv6 armv7 armvs7和体系结构作为标准体系结构 armv7和armv7s 还将构建活动架构仅切换为 否 即席安装挂起 并显示状态安装消息 随附屏幕截图 我已经正确添加了 UDI
  • iOS7上UITableViewCell显示白色背景且无法修改

    我已经实现了一个继承自的自定义表格视图单元格类UITableViewCell 表格视图包含背景图像 所以我希望单元格的背景是透明的 iOS7之前看起来很棒 然而 在 iOS7 中 单元格始终显示为白色背景 即使对于 Xcode7 2015
  • 应用程序:didReceiveRemoteNotification:未调用 fetchCompletionHandler

    出现了这个功能application didReceiveRemoteNotification fetchCompletionHandler当应用程序被强制退出时不会被调用 我的印象是 无论应用程序处于什么状态 该函数都会被调用 但似乎只有
  • Xcode 5 中的 iOS7 故事板不断垂直增长

    在 Xcode 5 中单击 iPad Storyboard 后 它询问我是否要升级到 iOS7 Storyboard 当警报出现在屏幕上时 它会不断垂直增长视图控制器 选择 升级 后 增长 就会停止 但那时损坏已经完成 视图控制器的大小也增

随机推荐

  • 多次按下排序按钮时排序表错误?

    我这里有问题 我创建程序将数据添加到表中 并在按下按钮时对其进行排序 当我按一次排序按钮时 它没有错 但当我再次按下时 它是错误的 所以为什么 请帮我 这是代码 纳玛级 public class Nama private String na
  • 具有图案和图像元素的 SVG 转换为 PNG 图像失败

    我试图将 Raphael js 生成的 svg 转换为 PNG 图像 好吧 当 svg 没有图案和图像组件时 我将 svg 转换为图像 然后 当我将这两个组件添加到 SVG 中时 就会出现问题并且转换失败 完整的小提琴是 here http
  • Ninject Kernel.Get 和构造函数注入之间的不同行为

    我有什么 public interface IBla public class Bla1 IBla public class Bla IBla public class Consumer private readonly IBla arra
  • 在 Dart 中使用“this”关键字是什么意思?

    如果这听起来像是一个极其愚蠢的问题 我很抱歉 但它确实一直困扰着我 什么是 这个 我看到了吗 每当我看到 flutter 中的文档时 我都会看到它被用于文档中的以下内容 this initialRoute this onGenerateRo
  • 如何给UIButton的按钮文本添加下划线?

    文本来自数据库 我想将它用作按钮并在按钮的文本下划线 我怎样才能做到这一点 在 iOS 6 中 NS属性字符串用于修改文本 您可以使用 NSMutableAttributedString 使用单个 UIButton 或 UILabel 进行
  • Internet Explorer 上使用大括号的 AngularJS 数据绑定问题

    我在这里做错了什么 我已经读过IE兼容性指南 http docs angularjs org guide ie但这没有提到使用 标签进行数据绑定 这在其他浏览器上工作正常 但在 IE 包括 IE9 中失败 http jsfiddle net
  • elm 中的类型继承

    我想要实现的是类型继承 我的意思是 我希望能够让函数返回 子类型 然后让函数返回 超类型 让我举一个例子 假设我有一个主视图组件 它返回一个 Html Msg view Model gt Html Msg view model div cl
  • Oracle 会淘汰 10gAS 转而采用 WebLogic 吗?

    Oracle 购买了 BEA 及其 WebLogic 工具套件 他们在自己的 10gAS 应用服务器中仍然有竞争产品 两者都是Java EE http en wikipedia org wiki Java Platform Enterpri
  • 如何以编程方式替换/更改图像按钮android

    我的视图上有一个图像按钮 我需要在用户交互后更改它 我没有找到类似的东西myImageButton setDrawable这是我想要更改的按钮的 xml
  • 如何使用 Gradle 创建发布签名的 apk 文件?

    我想让我的 Gradle 构建使用 Gradle 创建一个发布签名的 apk 文件 我不确定代码是否正确或者我在执行时是否缺少参数gradle build 这是我的一些代码build gradle build gradle kts file
  • 全二叉树的叶节点数

    Problem求一棵有 n 个节点的满二叉树的叶节点数 我为上述问题编写了一个递归程序 遍历树并在到达没有子节点的节点时增加叶节点的数量 但由于树是一个完整的二叉树 我认为这会让问题变得更容易 但我不知道如何解决 能否以紧凑的形式 类似于公
  • 如何确定我是否作为控制台应用程序运行? (Win32 上的德尔福)

    我有一个通用单元 可以将一些日志记录到 GExperts Debugger 和 或 OutputDebugString 我将在控制台应用程序中使用它 所以我希望它能够通过输出到标准输出writeln 主要可执行文件已经有 APPTYPE C
  • 如何将XAMPP中的phpMyAdmin升级到最新版本?

    如何在不影响数据库 设置和文件的情况下将XAMPP中的phpMyAdmin升级到最新版本 该网站将对您的目的有用 https www ostraining com blog coding update phpmyadmin https ww
  • 如何强制 Apache 使用最新安装的 PHP 版本

    我使用以下命令从 PHP 版本 5 5 9 1ubuntu4 17 升级到 PHP 5 6 23 1 deb sury org trusty 2 apt get y update add apt repository ppa ondrej
  • 如何使用包内 Excel 文件第一行中指定的列名称?

    谁能告诉我如何更改默认列名称 F1 F2 F3等 将数据从 Excel 源导入到 SSIS 2005 中的 OLEDB 目标时 示例 我的 Excel 电子表格中的数据如下所示 Title ProvinceID DistrictID Con
  • 调试 Windows 服务的更简单方法

    有没有比通过 Windows 服务控制管理器启动服务然后将调试器附加到线程更简单的方法来逐步执行代码 这有点麻烦 我想知道是否有更直接的方法 如果我想快速调试服务 我只需添加一个Debugger Break 在那里 当到达该线时 它会将我带
  • 如何使用ffmpeg的sws_scale()调整图片大小?

    我想使用 ffmpeg 的 func gt sws scale 来调整图片大小 有谁知道该怎么做吗 有这个函数的源码吗 首先你需要创建一个SwsContext 您只需执行一次 struct SwsContext resize resize
  • 暂停新的 BackGroundWorker 直到前一个完成

    我正在努力解决线程问题 问题是当我迭代 foreach 循环时 设置时this Document 应用程序执行登录 这是由事件触发的 需要几秒钟才能完成 在里面worker RunWorkerCompleted方法 我需要执行一些取决于当前
  • 如何在 SQLAlchemy 列/外键混合中指定 PostgreSQL 架构?

    现有的 PostgreSQL 数据库具有以不同 模式 组织的表 以分割大型数据库 既用于扩展 又在服务器级别实现微调的安全性 同样 declarative base 表描述被组织在包中的不同文件中 每个模式一个文件 package init
  • 类似 IOS 7 天气 APP 的过渡/动画

    我想实现iOS天气应用程序 如转换 ListView 点击列表项它会展开到详细视图 或者捏合列表也会展开到详细视图 左右滑动过渡 请让我知道如何实施 提前致谢 Here is 我在博客上找到的一些帖子 http www teehanlax