在使用iOS设备进行调试时切换慢动画

在使用iOS设备进行调试时切换慢动画

问题描述:

我正在使用xCode 4.3.1,我需要使用iOS模拟器具有的选项=>调试 - >切换慢速动画,但是使用iOS设备进行调试时。在使用iOS设备进行调试时切换慢动画

可能吗?

这与使用模拟器完全相同是不可能的,但有一个很好的方法可以使用lldb完成相同的效果。

使用调试器暂停执行代码,然后输入命令:

p [(CALayer *)[[[[UIApplication sharedApplication] windows] objectAtIndex:0] layer] setSpeed:.1f] 

进入调试器。

感谢this link的解决方案。

+13

值得注意的是,这可以简化为'[self.window.layer setSpeed:.1f];'如果在应用程序委托的'-appli阳离子:didFinishLaunching ...:方法。 (当然,假设你仍然在使用应用程序委托模板为你提供的'window'属性。) – 2013-11-18 19:50:51

+2

好的答案,这比模拟器更好,我有很多动画在同一时间运行, 0.1F对我来说仍然太快,所以我将它设置为0.02F。现在我可以看到错误在哪里。 :D:D:D THANX A LOOOOOOT – MQoder 2014-01-10 12:47:59

+1

这可以在lldb中简化为'expr - [(UIApplication *)UIApp keyWindow] .layer.speed = 0.1f' – 2014-04-03 22:31:50

对于斯威夫特应用:

具有断点暂停你的代码,然后输入以下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;