获取元素的位置

Chr*_*iet 1 iphone objective-c ios

当用户开始编辑其中一个单元格中显示的UITextField时,我无法尝试向上滚动tableView.

我的问题是我无法找到一种方法来了解视图中UITextField的位置.如果我尝试使用activeTextField.frame.origin.y,我会在单元格中获取TextField的位置,但不会在tableView中.

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

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

The*_*Eye 5

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

这应该可以帮助您了解表视图坐标系中的要点:

CGPoint textFieldCenter = textField.center;
CGPoint pointInTableView = [tableView convertPoint:textFieldCenter fromView:textField.superview];
Run Code Online (Sandbox Code Playgroud)

如果要将其放在不同的视图中,则应将tableView替换为要包含坐标的视图.

如果你想获取表格中的单元格,则textField位于:

NSIndexPath* path = [tableView indexPathForRowAtPoint:pointInTableView];
UITableViewCell* cell = [tableView cellForRowAtIndexPath:path];
Run Code Online (Sandbox Code Playgroud)