Toggle Slow Animations

iOS Simulator has a feature that slows animations, you can toggle it either by pressing ⌘T or choosing Debug > Toggle Slow Animations in Frontmost App. It’s very useful, but what if we want to do the same on device? It’s easy, fast and simple.

CALayer has a property called speed, which is a time multiplier. This means that if we have an animation with a duration of 1 second, and set the layer’s speed to 2, it’ll take just 0.5 seconds to finish. The best thing about it is that it’s related to the parent layer. So when we change the speed of a particular CALayer, every child layer will be affected. So, if we change UIWindow layer speed, every CALayer in our application will perform animations with that custom speed value. That leaves us with this two extensions:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
extension UIWindow {

    var slowAnimationsEnabled: Bool {
get {
return layer.speed != 1
}
set {
layer.speed = newValue ? 0.2 : 1
}
}
} extension UIApplication { func setSlowAnimationsEnabled(enabled: Bool) {
windows.map({ window in (window as? UIWindow)?.slowAnimationsEnabled = enabled })
}
}

And you can call it in both ways:

1
2
UIApplication.sharedApplication().keyWindow?.slowAnimationsEnabled = true
UIApplication.sharedApplication().setSlowAnimationsEnabled(true)

You can go further and expose this to your testers, through iOS Settings Bundle or a fancy shake gesture. Pretty handy!

Toggle Slow Animations的更多相关文章

  1. iOS.Animations.by.Tutorials.v2.0汉化(四)

    第三章 转换 在前面的两章,你学习了如何创建基于视图位置和透明度alpha的动画属性的动画.但是,如果您希望在视图上添加动画或删除动画,您将如何处理呢? 您可以使用前几章的方法来设置进出界面的动画效果 ...

  2. iOS-调试技巧

    目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印的艺术 NSLog 开启僵尸对象 ...

  3. iOS各种调试技巧豪华套餐

    转载自http://www.cnblogs.com/daiweilai/p/4421340.html 目录 前言 逼优鸡 知己知彼 百战不殆 抽刀断Bug 普通操作 全局断点(Global Break ...

  4. xcode的调试技巧

    转自:http://www.cnblogs.com/daiweilai/p/4421340.html#biyouji 目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global ...

  5. [翻译] POP Facebook的动画开源库

    Pop is an extensible animation engine for iOS and OS X. In addition to basic static animations, it s ...

  6. iOS调试程序的方法

    IOS各种调试技巧豪华套餐 普通操作 如图3 基本的断点操作如下 图4 点击那个黑列列就创建了一个断点,再次点击就临时取消这个断点(但是不删除),长按那个断点拖出去就删除了(mac os的系统工程师就 ...

  7. 使用Xcode进行调试

    目录 知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印的艺术 NSLog 开启僵尸对象(Enab ...

  8. iOS_高效开发之道

    iOS_高效开发之道 话不多说, 总结一下个人感觉有利于提高iOS开发效率的几个小技巧. 本文将从下面几方面介绍: Xcode经常使用快捷键 Xcode调试技巧 Objc经常使用代码片段 Xcode插 ...

  9. iOS 开发常用的调试工具

    前言 最近博主临近毕业季,为了完美的写一篇毕业论文,真是:“锄禾日当午,汗滴禾下土”<—— 这句诗跟毕业我写毕业论文没任何一毛钱关系,我就是突然想吟湿了.不过博主作为网络工程专业的好青年,曾经的 ...

随机推荐

  1. 规则引擎 - (二)XOM工程

    XOM工程即一个Java项目. 新建Java类,添加属性,实现get/set方法.

  2. impdp导入dmp数据实例

    --创建表空间 create tablespace ALIX datafile 'F:\File\ALIX.ora' size 1000m; --创建数据库目录 create directory ex ...

  3. redmine

    redmine直接复制图片 https://github.com/thorin/redmine_image_clipboard_paste

  4. ORACLE相关函数使用总结

    1. 2018年12月12日 12时12分  这种时间格式怎么转成2018-12-12 12:12  解决: select regexp_replace(regexp_replace('2009年6月 ...

  5. 使用monitor.bat用DDMS查看其它项目的布局

    查看结果

  6. Tensorflow(添加噪声的方式)

    在去噪自编码器中,模型的输入是原始的输入经过某种形式的加噪过程后的衰弱的形式,所以加噪声一般分为:加高斯白噪声,掩模噪声,椒盐噪声. 1.加性高斯噪声 self.scale = tf,placehol ...

  7. 【转载】IP地址和子网划分学习笔记之《子网掩码详解》

    原文地址: https://blog.51cto.com/6930123/2112748 一.子网掩码 IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相 ...

  8. Quartz定时任务封装

    一般的系统都会有一些定时任务,那么我们将这个定时任务封装起来,只要系统需要添加定时任务时,只需调用此方法传入所需要的值即可完成定时任务.  自己自学整理的一些随笔 1.首先对周期粒度进行封装 publ ...

  9. android LogConfigurator

    android LogConfigurator  此为第三方的 Log日志

  10. Problem 8: Largest product in a series

    先粘实现代码,以后需要再慢慢补充思路 s = ''' 73167176531330624919225119674426574742355349194934 9698352031277450632623 ...