Скрытие UIView занимает много времени

Добрый день...!

Я хочу просто скрыть UIView (называемый "secondView"), нажав кнопку внутри него. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку, требуется много времени (около 20 секунд) для выполнения метода и скрытия его суперпредставления, и я просто вижу эту проблему на симуляторах iphone, работающих на iOS 11.2. Я тестировал на iOS 9.0 симулятор iphone и iphone 5 iOS 10.3 реальное устройство. К сожалению, у меня нет реального устройства с установленной iOS 11.2 для тестирования.

это метод, который я использую, чтобы скрыть UIView:

-(IBAction)hideSecondView:(id)sender{
    secondView.hidden = YES;
}

В соответствии с темой " Показ скрытого просмотра очень медленно" и ответом @Duncan C я изменил свой код следующим образом:

-(IBAction)hideSecondView:(id)sender{
    dispatch_async(dispatch_get_main_queue(), ^{
        secondView.hidden = YES;
    });
}

Но проблема все еще есть:(

Любая помощь будет оценена.

Update1:

Как фрагмент, улучшенный @drct, я проверил, есть ли доступ к UIKit в потоках, отличных от main. Но не ловить!

У меня есть простой тестовый проект, и проверка основного потока показывает, что приложение не создает никаких других протекторов. Я приостановил выполнение прямо на время задержки скрытия secondView.

1 ответ

@Duncan C написал хороший ответ, описывающий вашу проблему.

У вас может быть другой код, который пытается выполнять вызовы UIKit из фонового потока, когда вы не знаете об этом.

Можете ли вы проверить, что у вас нет других звонков UIKit?

Другие вопросы по тегам