2014-03-31 74 views
0
文本框的XY位置

我的UIViewController的布局是:进去滚动视图

层1:UIView的(高度为568)
层2:的UIScrollView(高度为2000)
第3层:UIView的(高度是2000年)

我有很多这样的3层的UIView内文本框的,我想知道显示Layer1上的UIView(而不是3层的UIView原装XY)

我应该使用convertPoint当前XY?我得到了无效的结果

-(void)textFieldDidBeginEditing:(UITextField *)textField { 


    CGPoint newPoint = [textField convertPoint:textField.frame.origin fromView:self.view]; 
    NSLog(@"%f",textField.frame.origin.y); 
    NSLog(@"%f", newPoint.y); 

} 
+0

只需使用CGFloat获取textField.frame.origin.x和y – user2277872

+0

如果textField位于UIView的底部,则textField.frame.origin.y将为1800。所以这不是当前的y位置。我想知道当前的Y位置。 – user1172579

回答

1

你必须为您的第1层视图和第3层视图创建IBOutlet。

在ViewController.h

@property (strong, nonatomic) IBOutlet UIView *superView; 
@property (strong, nonatomic) IBOutlet UIView *subView; 

在ViewController.m

CGPoint originInSuperview = [self.superView convertPoint:textField.frame.origin fromView:self.subView]; 

然后,你将拥有的SuperView x和y位置。

0

您可以使用超级查看意味着一个视图,其中包含另一个视图。它管理子视图。子视图意味着持有/添加在“视图”上的视图。

让我们说。你有一个Superview UIview,它有一个子视图UIScrollView,并且它有另一个子视图UIview。

Might be it helps you. The event-handling methods: OnTouch

+0

是的,我认为层1 UIView是你所说的superview。所以我该如何执行? – user1172579

+0

使用事件处理方法:正如我附上链接 – chandan

+0

抱歉chandan,我正在使用这种技术来构建,我的问题是我想知道屏幕上的x和y时使用从scrollView滚动textField。因为一些textField非常底,原来的x和y在这种情况下是无用的。我需要textField的屏幕x和y。 – user1172579

0
UITextField *myTextField; 

获得textFiled起源X和Y

myTextField.frame.origin.x; 
myTextField.frame.origin.y; 

获取Minmum(产地)和最大值(结束)和textFiled

的中点
CGRectGetMinX(myTextField.frame); 
CGRectGetMaxX(myTextField.frame); 
CGRectGetMinY(myTextField.frame); 
CGRectGetMaxY(myTextField.frame); 
CGRectGetMidX(myTextField.frame); 
CGRectGetMidY(myTextField.frame); 
相关问题