当用户开始编辑显示在其中一个单元格中的UITextField时,尝试向上滚动tableView时遇到麻烦。

我的问题是我无法找到一种方法来了解UITextField在视图中的位置。如果我尝试执行activeTextField.frame.origin.y,则会得到TextField在单元格内的位置,而不是在tableView内。

我建立视图的方式如下:
我有一个TableViewController,它使用初始化UITextField的自定义类创建单元格。然后,我的TableViewController将UITextField委托设置为其自身,因此可以触发textFieldDidBeginEditing事件。但是,如果我尝试NSLog TextField的y原点,则对于每个UITextField总是获得相同的值,这是它在单元格中的位置。

关于如何解决这个问题的任何想法吗?

最佳答案

这些坐标系统的变化总是令人困惑...

这应该可以使您在表格视图坐标系中找到点:

CGPoint textFieldCenter = textField.center;
CGPoint pointInTableView = [tableView convertPoint:textFieldCenter fromView:textField.superview];

如果要在其他视图中使用它,则应将tableView替换为要包含坐标的视图。

如果要获取表中的单元格,则textField处于以下位置:
NSIndexPath* path = [tableView indexPathForRowAtPoint:pointInTableView];
UITableViewCell* cell = [tableView cellForRowAtIndexPath:path];

关于iphone - 获取元素的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9581648/

10-13 09:26
查看更多