Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么';从自定义单元格调用时,是否使用键盘动画?_Ios_Objective C_Uitableview_Uitextfield_Uitextfielddelegate - Fatal编程技术网

Ios 为什么';从自定义单元格调用时,是否使用键盘动画?

Ios 为什么';从自定义单元格调用时,是否使用键盘动画?,ios,objective-c,uitableview,uitextfield,uitextfielddelegate,Ios,Objective C,Uitableview,Uitextfield,Uitextfielddelegate,我有一个UItableViewCell的子类 当用户触摸单元格时,我调用reload,如下所示: [_tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; // This is where magic happens... [_tableView beginUpdates]; [_tableView endUpdate

我有一个UItableViewCell的子类

当用户触摸单元格时,我调用reload,如下所示:

[_tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

// This is where magic happens...
[_tableView beginUpdates];
[_tableView endUpdates];
一个新的细胞出现了。此新单元格将成为_WorkNameUITextField的第一个响应程序,如下所示:

@implementation TWMainViewPlusExpandedCell

- (void) awakeFromNib
{        
    [_workName becomeFirstResponder];

}
键盘显示,但没有动画。它是即时的!似乎没有任何动画

然而,当我通过调用resignFirstResponder退出键盘时,它会像预期的那样以动画方式退出

我是不是遗漏了什么


谢谢大家!

我认为您的单元格将成为响应程序,并在重新加载导致的tableview动画之前或期间打开键盘。 试一试


我问你为什么要重新加载表格只是为了选择一个单元格。

我正在重新加载表格,因为触摸会使一个新单元格取代旧单元格出现。这是错误的方法吗?正如你所建议的,我做了一个延迟,它解决了问题。难道没有更好的方法吗?在旧版iPhone上,如果执行时间稍微长一点,动画就会变得呆滞。问题是,正如你所看到的,你依赖的是时间,而时间并不能真正确定。延迟是一种解决方法。如果你得到了你想要的结果,为什么要花更多的时间呢?我不知道你想完成什么,但我假设你正在使单元格可编辑并修改布局。这段代码应该保留在您的自定义单元格中。这样,您可以控制动画,并在完成时成为第一响应者。这样你就可以确保事件的顺序。不可编辑,只需加载一个新的,但这很有意义。现在我想起来了,我真的不认为我需要2个细胞。。。谢谢你的洞察力,先生。
- (void) awakeFromNib
{        
    [_workName performSelector:@selector(becomeFirstResponder) onThread:[NSThread getMainThread] withObject:nil withDelay:0.1];

}