Хорошо, эта проблема сводит меня с ума.
Клавиатура всплывает после того, как я прикоснусь к ней UITextField
. Это происходит только при первом появлении клавиатуры после запуска приложения, после чего анимация запускается мгновенно.
Сначала я подумал, что это проблема загрузки слишком большого количества изображений или моего UITableView
, но я только что создал новый проект только с одним UITextField
, и я все еще испытываю эту проблему. Я использую iOS 5, Xcode ver 4.2 и работаю на iPhone 4S.
Это мой код:
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 20, 280, 30)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.delegate = self;
[self.view addSubview:textField];
}
@end
Это общая проблема для всех приложений?
Прямо сейчас, единственный способ сделать это несколько лучше - textField
стать / подать в отставку первым респондентом viewDidAppear
, но это не решает проблему полностью - она просто загружает задержку, когда вместо этого загружается представление. Если я щелкну textField
сразу после загрузки представления, я все равно получу проблему; если я подожду 3-4 секунды после загрузки представления, прежде чем дотронуться до textField, я не получу задержку.
Таким образом, проблема не ограничивается первой установкой, как я думал ранее, а возникает каждый раз, когда приложение запускается. Вот мое решение, которое решает проблему полностью.
источник
Да, я также получил несколько секунд задержки на последнем iPhone 4s. Не паникуйте. По некоторым причинам это происходит только при первой загрузке приложения из Xcode в Debug. Когда я сделал релиз, я не получил задержку. Просто забудь это...
источник
Fastest, Smallest [-Os]
. Вы можете изменить это наBuild Settings > Optimization Level
Это известная проблема.
Предварительная загрузка клавиатуры кажется многообещающей. Проверьте предварительную загрузку UIKeyboard.
Некоторые дополнительные материалы для чтения:
Начальное отображение виртуальной клавиатуры iPhone медленное для UITextField. Требуется ли этот взлом?
Клавиатура UITextField блокирует запуск при загрузке?
http://www.iphonedevsdk.com/forum/iphone-sdk-development/12114-uitextfield-loooong-delay-when-first-tapped.html
источник
Вы можете использовать решение Vadoff в Swift, добавив его в didFinishLaunchingWithOptions:
Это работает для меня в iOS 8.
источник
Код в блоке добавляется в основную очередь и выполняется асинхронно. (не заблокирован основной поток)
источник
Смотрите этот ответ . Они предлагают UIResponder + KeyboardCache . Это просто и круто. Протестировано на iOS 7.
источник
Связанная проблема, когда UIViewController будет отображаться медленно, была решена путем использования системного шрифта вместо пользовательского шрифта в UITextField. Возможно, использование системного шрифта также подойдет для этой проблемы?
источник
Эта ошибка, кажется, исправлена в iOS 9.2.1. После обновления моего устройства у меня больше не возникает задержка между нажатием текстового поля и появлением клавиатуры, когда мое устройство подключено к моему компьютеру.
источник
Этот выбранный ответ вызывает сбой BAD_EXC на iOS 11 - удалить из приложения, чтобы исправить
источник
Вы можете добавить приведенный ниже код, когда представление viewController действительно загрузилось, например viewDidAppear. Не просто application: didFinishLaunchingWithOptions:
источник