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
这是所有应用程序的常见问题吗?
现在,我可以做得更好的唯一方法是让textField
在viewDidAppear
成为/退出第一响应者,但这并不能完全解决问题 - 它只是在视图加载时加载延迟。 如果我在视图加载时立即点击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