使用iOS Device进行调试时切换慢动画

fab*_*s88 53 xcode ios ios5

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

可能吗?

Tim*_*ber 150

这与模拟器的完全相同是不可能的,但是有一种使用lldb实现相同效果的好方法.

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

p [(CALayer *)[[[[UIApplication sharedApplication] windows] objectAtIndex:0] layer] setSpeed:.1f]
Run Code Online (Sandbox Code Playgroud)

进入调试器.

感谢这个解决方案的链接.

  • 值得注意的是,这可以简化为`[self.window.layer setSpeed:.1f];`如果在运行时在app委托的`-application:didFinishLaunching ...:`方法中使用.(当然,假设您仍在使用app委托模板默认提供的`window`属性.) (13认同)
  • 很好的答案,这比模拟器更好,我有很多动画在同一时间运行,0.1F对我来说仍然太快,所以我把它设置为0.02F.现在我可以看到bug的位置.:D:D:D THANX A LOOOOOOT (2认同)

JAL*_*JAL 19

在Swift 3中:

UIApplication.shared.windows.first?.layer.speed = 0.1
Run Code Online (Sandbox Code Playgroud)

或者,如果您在AppDelegate中的任何位置并且只使用一个窗口,则可以执行以下操作:

window?.layer.speed = 0.1
Run Code Online (Sandbox Code Playgroud)


dre*_*lab 15

对于Swift应用程序:

使用断点暂停代码并输入以下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
Run Code Online (Sandbox Code Playgroud)

不要忘记DEBUG在"Swift Compiler - Custom Flags"部分中设置符号,"Other Swift Flags"行.您添加DEBUG带有-DDEBUG条目的符号.