IOS получить положение - PullRequest
3 голосов
/ 25 марта 2011

У меня много кнопок внутри 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",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);
}

Но я просто получаю то же самое. Позиция 0;

Ответы [ 2 ]

7 голосов
/ 25 марта 2011

Ваш код выглядит нормально. Единственное - вы используете неверный спецификатор формата в NSLog. Поскольку координаты являются числами с плавающей точкой, вы должны использовать %f вместо %d:

NSLog(@"position:%f",buton1.frame.origin.x);
0 голосов
/ 25 марта 2011

Если вы используете метод scrollRectToVisible:animated:, есть хитрость, потому что документация гласит: Этот метод прокручивает представление содержимого, так что область, определенная прямоугольником, просто видна внутри представления прокрутки. Если область уже видна, метод ничего не делает.

Попробуйте прокрутить до CGRectMake(buton1.frame.origin.x, buton1.frame.origin.y, yourScrollView.frame.width, yourScrollView.frame.height).

Вы можете использовать коэффициент выдумки для 3-х параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...