UITextField的初始键盘动画超级慢速滞后/延迟

好吧,这个问题一直让我疯狂。

在我触摸我的UITextField后,键盘弹出需要大约3-4秒的时间。 这只会在应用程序启动后第一次弹出键盘,之后动画立即开始。

起初我以为这是加载太多图像或我的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

这是所有应用程序的常见问题吗?

现在,我可以做得更好的唯一方法是让textFieldviewDidAppear成为/退出第一响应者,但这并不能完全解决问题 - 它只是在视图加载时加载延迟。 如果我在视图加载时立即点击textField ,我仍然会遇到问题; 如果我在触摸textField之前等待3-4秒,我不会得到延迟。


在实施任何异域黑客来解决此问题之前,请尝试以下操作:停止调试会话,从多任务关闭应用程序,从计算机上拔下设备的电源并通过点击其图标正常运行应用程序。 至少有两种情况下,只有在设备插入时才会出现延迟。


所以这个问题不仅仅局限于我以前想过的第一次安装,而是每次启动应用程序时都会发生。 这是我的解决方案,完全解决了这个问题。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Preloads keyboard so there's no lag on initial keyboard appearance.
  UITextField *lagFreeField = [[UITextField alloc] init];
  [self.window addSubview:lagFreeField];
  [lagFreeField becomeFirstResponder];
  [lagFreeField resignFirstResponder];
  [lagFreeField removeFromSuperview];
}

是的,我还在最新的iPhone 4上延迟了几秒钟。 不要惊慌。 出于某些原因,它只会在应用程序第一次在Debug中从Xcode加载时发生。 当我释放时,我没有得到延迟。 把它忘了吧...

链接地址: http://www.djcxy.com/p/44223.html

上一篇: Super slow lag/delay on initial keyboard animation of UITextField

下一篇: Dismiss keyboard when touching outside of UITextField