ios – 我怎样才能加速成为第一个响应者?

第一次调用firstFirstResponder时,它的速度很慢.仪器测量大约160毫秒…当它加载所有必须加载的所有东西以便将键盘放在屏幕上时,键盘就会出现!杀死大部分流畅的动画.

然而,第二次,它的速度非常快!它只需要2ms!

那么,我能以某种方式这样做吗?

最佳答案 使用GCD

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// heavy lifting here
    dispatch_async(dispatch_get_main_queue(), ^{
        [someTextField becomeFirstResponder];
    });
});

这最初并没有像预期的那样发挥作用,但是在将GCD应用于背景中正在发生的一些“提升”之后.就我而言,这是一个滚动的视图

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// heavy lifting here
    dispatch_async(dispatch_get_main_queue(), ^{
        [_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
    });
});
点赞