Wil*_*nez 2 uitableview uitextfield ios
我有一个带自定义单元格的tableView.单元格中的一个对象是textField.tableViewController是textFieldDelegate.表的数据源是一个对象数组.当用户点击textField时,tableViewController实现textField委托方法控制这种方式的数据输入.
要使用用户输入的数据,tableViewController实现以下内容:
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
CGPoint point = [textField center];
point = [self.tableView convertPoint:point fromView:textField];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];
...
...
return YES
}
Run Code Online (Sandbox Code Playgroud)
我花了两个小时试图弄清楚为什么indexPath.row总是错误的,它总是排在第一行的假设.解决方案:在故事板中,我将textField移动到单元格的上部.以前有人见过这样的东西吗?谢谢.
-[UIView center]
返回视图框架的中心,该框架位于视图的superview坐标系中.但是-[UIView convertPoint:fromView:]
期望在"从"视图的坐标系中给出一个点.
要么给它相同的点,并告诉它从正确的视图转换:
CGPoint point = [textField center];
point = [self.tableView convertPoint:point fromView:textField.superview];
Run Code Online (Sandbox Code Playgroud)
或者在视图的坐标系中给它一个点,并告诉它从视图转换:
CGRect textFieldBounds = textField.bounds;
CGPoint point = CGPointMake(CGRectGetMidX(textFieldBounds), CGRectGetMidY(textFieldBounds));
point = [self.tableView convertPoint:point fromView:textField];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1712 次 |
最近记录: |