2012-04-19 2 views

답변

125

시뮬레이터와 완전히 똑같은 방법은 불가능하지만, lldb를 사용하여 동일한 효과를 얻는 좋은 방법이 있습니다.

코드 실행을 일시 정지 디버거를 사용하여 다음 명령을 입력 : 디버거에

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

합니다.

솔루션 덕분에 this link에게 감사드립니다.

+13

이것은 앱 위임자의'-appli에서 런타임에 사용되면'[self.window.layer setSpeed ​​: .1f];로 단순화 될 수 있습니다. 양이온 : didFinishLaunching ... :'메소드. (당신이 여전히 응용 프로그램 델리게이트 템플릿이 기본적으로 제공하는'window' 속성을 사용하고 있다고 가정하십시오.) –

+2

위대한 답은 시뮬레이터가 더 나아졌으며 동시에 많은 양의 애니메이션을 실행하고있었습니다. 0.1F는 여전히 너무 빠르기 때문에 0.02F로 설정했습니다. 이제 버그가 어디에 있는지 알 수 있습니다. : D : D : D THANX A LOOOOOOT – MQoder

+1

이것은 lldb에서'expr - [(UIApplication *) UIApp keyWindow] .layer.speed = 0.1f' –

13

를 들어 스위프트 앱 : 또는

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


당신은 분명 또한 속도를 변경할 수 있습니다

중단 점에 정지 코드를 다음과 같은 lldb 명령을 입력 어딘가에서 코드. "- 사용자 정의 플래그 스위프트 컴파일러"섹션, "기타 스위프트 플래그"라인을 응용 프로그램 실행에서 #if 처리기 매크로 예를 들어

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

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

은에 DEBUG 기호를 설정하는 것을 잊지 마십시오. -DDEBUG 항목과 함께 DEBUG 기호를 추가합니다.

9
스위프트 3에서

:

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

또는 당신이 당신의 AppDelegate에 어디있어, 당신은 단지 하나 개의 창을 사용하는 경우, 당신은이 작업을 수행 할 수 있습니다

목표 - C에서
window?.layer.speed = 0.1 
0

꽤 작동 좋은

self.window.layer.speed = .1f; 
관련 문제