gpt4 book ai didi

ios - tableView 转换点 : fromView: odd behaviour and workaround

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:08:21 27 4
gpt4 key购买 nike

我有一个带有自定义单元格的 tableView。单元格中的对象之一是文本字段。tableViewController 是 textFieldDelegate。该表的数据源是一个对象数组。当用户点击 textField 时,tableViewController 实现 textField 委托(delegate)方法以这种方式控制数据输入。
为了使用用户输入的数据,tableViewController 实现了以下内容:

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
CGPoint point = [textField center];
point = [self.tableView convertPoint:point fromView:textField];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];
...
...
return YES
}

我花了两个小时试图找出为什么 indexPath.row 总是错误的,它总是 row+1 它应该是什么。解决方案:在 Storyboard中,我将 textField 移动到单元格的上部。以前有人见过这样的东西吗?谢谢。

最佳答案

-[UIView center]返回 View 的 frame 的中心,它位于 View 的 superview 的 坐标系中。但是-[UIView convertPoint:fromView:]期望在“来自” View 的坐标系中给出一个点。

要么给它相同的点,并告诉它从正确的 View 转换:

CGPoint point = [textField center];
point = [self.tableView convertPoint:point fromView:textField.superview];

或者在 View 的坐标系中给它一个点,并告诉它从 View 转换:

CGRect textFieldBounds = textField.bounds;
CGPoint point = CGPointMake(CGRectGetMidX(textFieldBounds), CGRectGetMidY(textFieldBounds));
point = [self.tableView convertPoint:point fromView:textField];

关于ios - tableView 转换点 : fromView: odd behaviour and workaround,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17358322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com