62

我正在使用 xCode 4.3.1,我需要使用 iOS Simulator 具有的选项 => Debug -> Toggle Slow Animation 但在使用 iOS 设备进行调试时。

是否可以?

4

6 回答 6

160

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

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

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

进入调试器。

感谢此链接的解决方案。

于 2013-04-03T13:28:12.407 回答
23

在斯威夫特 3 中:

UIApplication.shared.windows.first?.layer.speed = 0.1

或者,如果您在 AppDelegate 中的任何位置并且只使用一个窗口,您可以这样做:

window?.layer.speed = 0.1
于 2016-10-19T19:38:49.273 回答
17

对于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

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

于 2015-11-25T00:51:45.570 回答
3

Swift 5,在 AppDelegate 或 SceneDelegate 类中添加这一行,这取决于您的基础架构:

// create and assign window object if not exist. 
self.window = UIWindow(frame: UIScreen.main.bounds)

// starts slow motion 
window?.layer.speed = 0.05
于 2021-05-02T23:48:19.247 回答
1

如果您只想在一个视图控制器中减慢应用程序,您可以配置一个断点以在执行命令后继续执行。您将此断点设置在viewDidAppear. 然后您可以设置另一个“不可停止”断点,将速度反转为 1X。您在viewDidDisappear.

非常简单。可以保留在您的断点列表中停用并在需要时轻松重用。

于 2019-06-10T12:52:51.210 回答
0

在 Objective-c 中效果很好

self.window.layer.speed = .1f;
于 2018-02-27T13:48:26.540 回答