【发布时间】:2016-08-25 17:59:27
【问题描述】:
我搜索了堆栈溢出 (Getting row of UITableView cell on button press) 并找到了许多人们声称可以工作的解决方案,但我还没有找到完美的解决方案。我正在尝试使用 CGPoint 在我的 UITableView 中获取下一个/上一个 UITextField 的 indexPath,以便我可以滚动到它并使其成为第一响应者。大多数情况下它是正确的,但是如果我的文本字段是另一部分 UITableView 中的前一个字段,我会得到错误的结果。
代码如下(注意:nextTxtField 是 UIView):
CGPoint point = [nextTxtField convertPoint:CGPointZero toView:tableView];
NSIndexPath *indexPath = [tableView indexPathForRowAtPoint:point];
[UIView animateWithDuration:0.03 delay:0.0 options:0 animations:^{
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
} completion:^(BOOL finished) {
dispatch_async(dispatch_get_main_queue(), ^(void){
[nextTxtField becomeFirstResponder];
});
}];
【问题讨论】:
标签: ios objective-c uitableview uitextfield