UITextField的初始键盘动画上的超慢滞后/延迟 [英] Super slow lag/delay on initial keyboard animation of UITextField

查看:1065
本文介绍了UITextField的初始键盘动画上的超慢滞后/延迟的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好吧,这个问题一直驱使我坚果。

Alright, this problem has been driving me nuts.

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

It takes roughly 3-4 seconds for the keyboard to pop up after I touch my UITextField. This only occurs on the first time the keyboard pops up since the app launched, afterwards the animation starts instantly.

一开始我认为这是加载太多图像的问题,或我的 UITableView ,但我刚刚创建了一个全新的项目只有一个 UITextField ,我仍然遇到这个问题。我使用iOS 5,Xcode版本4.2,并在iPhone 4S上运行。

At first I thought it was problem of loading too many images, or my UITableView, but I just created a brand new project with only a UITextField, and I still experience this problem. I'm using iOS 5, Xcode ver 4.2, and running on an 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 成为/ resign第一个响应者在 viewDidAppear ,但这不能完全解决问题 - 它只是加载延迟到视图加载时。如果我在视图加载时立即点击 textField ,我仍然会遇到问题;如果我在触摸textField之后加载视图后等待3-4秒,我就不会得到延迟。

Right now, the only way I can make it somewhat better is by having textField become/resign first responder in viewDidAppear, but that doesn't solve the problem entirely - it just loads the delay onto when the view loads instead. If I click on textField immediately when the view loads, I still get the problem; if I wait 3-4 seconds after the view loads before touching the textField, I don't get the delay.

推荐答案

问题不仅限于第一次安装,因为我以前想,但发生每次应用程序启动时。这里是我的解决方案,以完全解决问题。

So the problem is NOT just limited to the first install as I had previously thought, but happens every time the app is launched. Here's my solution that solves the issue completely.

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

这篇关于UITextField的初始键盘动画上的超慢滞后/延迟的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆