2012-04-19 11 views

risposta

125

non è possibile esattamente nello stesso modo con il simulatore, ma c'è un buon modo per ottenere lo stesso effetto utilizzando lldb.

Utilizzare il debugger per sospendere l'esecuzione di codice, e quindi inserire il comando:

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

nel debugger.

Grazie alla this link per la soluzione.

+13

vale la pena notare che questo può essere semplificata a '[SetSpeed ​​self.window.layer: .1f];' se usato in fase di esecuzione in app del delegato '-appli cation: didFinishLaunching ...: 'metodo. (Supponendo che si sta ancora utilizzando la proprietà 'finestra 'che il modello di applicazione delegato si dà per difetto, naturalmente.) –

+2

Grande risposta, questo è ancora meglio allora il simulatore, ho avuto un sacco di animazione in esecuzione sullo stesso tempo, 0.1F è ancora troppo veloce per me, quindi l'ho impostato su 0.02F. E ora posso vedere dov'è il bug. : D: D: D THANX A LOOOOOOT – MQoder

+1

Questo può essere semplificato in lldb in solo 'expr - [(UIApplication *) UIApp keyWindow] .layer.speed = 0.1f' –

13

Per Swift applicazioni:

Halt il codice con un punto di interruzione e immettere il seguente comando lldb:

(lldb)p UIApplication.sharedApplication().windows.first?.layer.speed = 0.1


In alternativa si può, ovviamente, anche cambiare la velocità da qualche parte nel tuo codice. Ad esempio, con una macro #if preprocessore al momento del lancio dell'applicazione

func application(application: UIApplication, 
    didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
{ 
    ... 

    #if DEBUG 
     application.windows.first?.layer.speed = 0.1 
    #endif 

Non dimenticare di impostare il simbolo DEBUG nel "Swift Compiler - Bandiere personalizzate" sezione "Altre Bandiere Swift" linea. Si aggiunge il simbolo DEBUG con una voce -DDEBUG.

9

In Swift 3:

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

Oppure, se siete in qualsiasi punto della AppDelegate e si utilizza una sola finestra, si può fare questo:

window?.layer.speed = 0.1 
0

In Objective-C funziona abbastanza buona

self.window.layer.speed = .1f; 
Problemi correlati