我有一个填充单元格的tablview
。单击一个单元格后,我会实际填充textfields
我的问题是如何获取y
坐标,以便根据用户当前位于边界的位置定位UITextField
?或者将其设置为将UITextField
设置为固定位置,这样如果您要在tableview中向下滚动,UITextField
将始终保持在同一位置。
我不介意任何选择,但最好的办法是什么呢?
更新:
好的,这就是我的要求。当您使用单元格填充tablview
并且它超出屏幕物理边界时,您可以向下滚动以查看其他单元格吗?所以,如果我使用:
float width = [[UIScreen mainScreen] bounds].size.width;
self.cardnameTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, width, 25)];
0
= y
位置。这将位于我UiTableview
位于0,0
位置的顶部,该位置位于UITableView
的最左侧。现在我要问的是,我可以向下滚动以选择超出物理屏幕范围的cell
并选择cell
,它会填充最顶层的UITextField
UITableView
0,0
左侧而不是物理屏幕的最左侧。如何获得物理屏幕y
坐标,以便我可以定位UITextField
,以便用户始终可以看到它。
答案 0 :(得分:0)
好的,我只是想通了。
因此,当您执行[self.viewaddSubview:self.cardnameTextField];
时,这会将其定位在UITableView
内,而我必须找到实际屏幕最顶部位置的y
坐标。但是,如果我运行[self.view.window addSubview:self.cardnameTextField];
,则会将其设置为实际window
,使其具有CSS
position:fixed;
功能,这正是我所寻找的。 p>
答案 1 :(得分:-1)
即使您发表评论,您的要求也不是很清楚。
如果您询问如何将单元格的位置转换为屏幕坐标,则非常简单。 UIView有一整套方法可以将坐标从一个视图的坐标系转换到另一个坐标系。只要2个视图是同一视图层次结构的一部分,它们就可以工作。你可以使用单元格的contentView.bounds.origin(它将在内容视图的坐标系中)并将位置转换为视图控制器内容视图的坐标系:
CGPoint cellOrigin = cell.contentView.bounds.origin;
cellOrigin = [self.view convertPoint: cellOrigin fromView: cell.contentView];
上面的代码会在视图控制器的内容视图的坐标中为您提供单元格原点的坐标。
如果那不是您要求的,那么您需要更新您的问题以明确您的要求。