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];

Я подал радар. Пожалуйста, идите и обманывайте, особенно если вы обнаружите, что на это влияют другие звонки.

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