UIDocumentMenuViewController / UIDocumentPickerViewController медленно отображается в представлении
Я пытаюсь использовать средство выбора файлов iOS для выбора текстовых файлов, но когда я создаю экземпляр и представляю (модально) UIDocumentMenuViewController
или UIDocumentPickerViewController
пользовательский интерфейс занимает некоторое время, чтобы показать.
Это код, который я пытался использовать для UIDocumentMenuViewController
один для UIDocumentPickerViewController
было бы довольно похоже:
UIDocumentMenuViewController *menuVC = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeText] inMode:UIDocumentPickerModeOpen];
menuVC.delegate = self;
[self presentViewController:menuVC animated:YES completion:nil];
Если я попытаюсь вызвать этот код 3 или более раз, то отставание исчезнет. Я понимаю, что при работе с документами iCloud существуют синхронные операции, которые занимают время, но я не нашел способа предварительной загрузки, чтобы к моменту представления контроллера представления это происходило мгновенно. Я даже пытался создать экземпляры контроллеров представления задолго до их представления, но инициализация не кажется узким местом.
Кто-нибудь испытывал такую же проблему?
1 ответ
Оказывается, проблема была связана с использованием внешнего вида на UISegmentController с пользовательским шрифтом. Это может быть связано и с другими элементами управления UIKit.
Вот способ, которым я воспроизвел это на чистом проекте:
NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"Pacifico" size:16]};
[[UISegmentedControl appearance] setTitleTextAttributes:attributes forState:UIControlStateNormal];
Я подал радар. Пожалуйста, идите и обманывайте, особенно если вы обнаружите, что на это влияют другие звонки.