Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone IOS获得位置_Iphone_Ios_Ipad_Position - Fatal编程技术网

Iphone IOS获得位置

Iphone IOS获得位置,iphone,ios,ipad,position,Iphone,Ios,Ipad,Position,我在UIScrollView中有很多按钮,我试图在按钮点击时获得它们的位置。这是我的密码: UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(2, 0, 262, 748)]; scrollView.contentSize=CGSizeMake(262, 816); scrollView.bounces=NO; scrollView.delaysContentTouches=YES; buton1

我在UIScrollView中有很多按钮,我试图在按钮点击时获得它们的位置。这是我的密码:

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(2, 0, 262, 748)];
scrollView.contentSize=CGSizeMake(262, 816);
scrollView.bounces=NO;
scrollView.delaysContentTouches=YES;

buton1 = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
buton1.frame = CGRectMake(2, 0, 262, 102);
buton1.bounds = CGRectMake(2, 0, 262.0, 102.0);
[buton1 setTag:1];
[buton1 setImage:[UIImage imageNamed:@"left_gride.png"] forState:UIControlStateNormal];
[buton1 addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
     [scrollView addSubview:buton1];

}

我的代码有什么问题。谢谢

我还尝试了:

-(void) buttonClick:(UIButton*)button{
if ([button tag]==1)
{
     NSLog(@"position:%d",buton1.frame.origin.x);
}
else
{
    NSLog(@"position:%d",buton2.frame.origin.y);
}

-(void) buttonClick:(UIButton*)button{
if ([button tag]==1)
{
     NSLog(@"position:%d",button.frame.origin.x);
}
else
{
    NSLog(@"position:%d",button2.frame.origin.y);
}

但我还是得到了同样的结果

您的代码看起来不错。唯一的问题是,您在NSLog中使用了错误的格式说明符。由于坐标是浮点数,您应该使用
%f
而不是
%d

NSLog(@"position:%f",buton1.frame.origin.x);

如果使用
scrollRectToVisible:animated:
方法,则有一个技巧,因为文档中说:此方法滚动内容视图,以便rect定义的区域在滚动视图内可见。如果该区域已可见,则该方法不执行任何操作

尝试滚动到CGRectMake(buton1.frame.origin.x,buton1.frame.origin.y,滚动视图.frame.width,滚动视图.frame.height)


您可以在第三个参数上使用模糊因子。

请写下您期望的内容以及执行此代码时发生的情况。我期望返回位置,但得到的只是位置0。现在我遇到了另一个问题。即使我滚动按钮,位置也不会改变。为什么会这样。因为按钮位置在scrollview内容的坐标空间中-所以当你滚动时,它实际上不会改变。如果要获取屏幕坐标,需要将其转换为坐标(例如,使用convertPoint:toView:method)
NSLog(@"position:%f",buton1.frame.origin.x);