2016-05-19 7 views
2

У меня много задержки с моим UIAlert, всякий раз, когда он загружается, мне нужно подождать, прежде чем я смогу щелкнуть, а затем снова, чтобы он полностью исчез. Я просмотрел другие ответы, рекомендованные с использованием dispatch_async(dispatch_get_main_queue(), {}). Я попытался использовать это, но безрезультатно. Во время цикла рендеринга появляется всплывающее окно для игры с набором сцен, которую я делаю (сцена - это просто куб, и когда я приостанавливаю сцену, она все еще задерживается). В любом случае, рендеринг не должен выполняться в потоке рендеринга. Я просмотрел журнал профиля времени, чтобы увидеть, что что-то блокирует главную тему, но я не видел ничего, что привлекло мое внимание (я довольно новичок в инструментах). picture of call treeUIAlertController, показывающий с задержкой

Вот мой код, где я творю предупреждение:

func share(){ 
    print("share funciton") 
    let alert = UIAlertController(title: "Share", message: "Where do you want to share?", preferredStyle: UIAlertControllerStyle.Alert) 
    alert.addAction(UIAlertAction(title: "Twitter", style: .Default, handler: {(alert: UIAlertAction!) in 
     print("twitter") 

     self.showTwitter() 
    })) 
    self.presentViewController(alert, animated: false, completion: nil) 
} 

private func showTwitter() { 
    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter) { 

     let tweetShare:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter) 

     self.presentViewController(tweetShare, animated: true, completion: nil) 

    } else { 

     let alert = UIAlertController(title: "Accounts", message: "Please login to a Twitter account to tweet.", preferredStyle: UIAlertControllerStyle.Alert) 

     alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)) 

     self.presentViewController(alert, animated: true, completion: nil) 
    } 
} 

Тогда я вызываю доля(), когда в визуализации контура с dispatch_asych. Я работаю над этой ошибкой в ​​течение трех дней, но понятия не имею, что вызывает задержку.

+0

Симулятор или устройство? – Wain

+0

В симуляторе – egdenis

+0

У вас случайно включена медленная анимация? – Wain

ответ

1

Попробуйте отключить медленную анимацию. Открытый симулятор -> debug -> медленная анимация

+0

отлично работает. – egdenis

+0

Не стоит беспокоиться, что эта настройка была источником большого разочарования для меня в прошлом :) – Maxwelll