在使用iOS设备进行调试时切换慢动画
答
这与使用模拟器完全相同是不可能的,但有一个很好的方法可以使用lldb完成相同的效果。
使用调试器暂停执行代码,然后输入命令:
p [(CALayer *)[[[[UIApplication sharedApplication] windows] objectAtIndex:0] layer] setSpeed:.1f]
进入调试器。
感谢this link的解决方案。
答
对于斯威夫特应用:
具有断点暂停你的代码,然后输入以下LLDB命令:
(lldb)
p UIApplication.sharedApplication().windows.first?.layer.speed = 0.1
或者可以很明显的也改变速度在你的代码中的某处。例如用在应用程序启动一个#if
预处理宏
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
...
#if DEBUG
application.windows.first?.layer.speed = 0.1
#endif
不要忘记设置DEBUG
符号在“雨燕编译器 - 自定义标记”一节中,“其他雨燕旗”行。您将DEBUG
符号与-DDEBUG
条目相加。
答
在斯威夫特3:
UIApplication.shared.windows.first?.layer.speed = 0.1
或者,如果你在你的AppDelegate是任何地方,你只能使用一个窗口,你可以这样做:
window?.layer.speed = 0.1
答
在Objective-C的工程相当不错
self.window.layer.speed = .1f;
值得注意的是,这可以简化为'[self.window.layer setSpeed:.1f];'如果在应用程序委托的'-appli阳离子:didFinishLaunching ...:方法。 (当然,假设你仍然在使用应用程序委托模板为你提供的'window'属性。) – 2013-11-18 19:50:51
好的答案,这比模拟器更好,我有很多动画在同一时间运行, 0.1F对我来说仍然太快,所以我将它设置为0.02F。现在我可以看到错误在哪里。 :D:D:D THANX A LOOOOOOT – MQoder 2014-01-10 12:47:59
这可以在lldb中简化为'expr - [(UIApplication *)UIApp keyWindow] .layer.speed = 0.1f' – 2014-04-03 22:31:50