Я использую xCode 4.3.1, и мне нужно использовать параметр, который iOS Simulator имеет = > Debug → Toggle Slow Animation, но при отладке с помощью устройства iOS.
Возможно ли это?
Я использую xCode 4.3.1, и мне нужно использовать параметр, который iOS Simulator имеет = > Debug → Toggle Slow Animation, но при отладке с помощью устройства iOS.
Возможно ли это?
Это невозможно точно так же, как с Simulator, но есть хороший способ добиться того же эффекта с помощью lldb.
Используйте отладчик для приостановки выполнения кода, а затем введите команду:
p [(CALayer *)[[[[UIApplication sharedApplication] windows] objectAtIndex:0] layer] setSpeed:.1f]
в отладчик.
Благодаря эта ссылка для решения.
В Swift 3:
UIApplication.shared.windows.first?.layer.speed = 0.1
Или, если вы находитесь где-нибудь в своем AppDelegate и используете только одно окно, вы можете сделать это:
window?.layer.speed = 0.1
Для 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
.
В Objective-C работает довольно хорошо
self.window.layer.speed = .1f;
Если вы хотите замедлить приложение только в одном контроллере представления, вы можете настроить точку останова для продолжения выполнения после выполнения команды. Вы устанавливаете эту viewDidAppear
останова в viewDidAppear
. Затем вы можете установить другую "неостанавливаемую" точку останова, чтобы изменить скорость до 1X. Вы устанавливаете эту другую viewDidDisappear
останова в viewDidDisappear
.
Очень просто. Может быть сохранен в вашем списке точек останова и деактивирован и может быть легко использован при необходимости.