Начальная точка UIScrollView - PullRequest
1 голос
/ 17 июня 2009

У меня есть приложение для iPhone с основным видом 480 x 510. Я немного запутался в том, как меняется система координат при переходе от портрета к ландшафтному праву.

Изначально у меня была область содержимого 480x480, и я хотел добавить кнопку сбоку, чтобы вызвать меню. Тем не менее, единственный способ, с помощью которого я мог найти написание по всей длине левой части приложения, - это изменить ориентацию всего приложения на альбомную вправо.

Теперь, с ориентацией в альбомной ориентации, просмотр прокрутки начинается в верхнем левом углу, когда я действительно хочу, чтобы он начинался в исходной точке ориентации (с того момента, когда она была в портретном режиме), которая была бы внизу слева. Но я не могу понять, как изменить исходную начальную точку прокрутки. Я попробовал contentOffset, но, похоже, он не работает.

Еще один способ сделать это (что я мог бы в итоге сделать) - забыть иметь заголовок на кнопке и просто создать графический элемент для кнопки, текст которого ориентирован вертикально.

if (self = [super initWithCoder:coder]) {
    // Size of the scrollview
    self.contentSize = CGSizeMake(480, 510);
    [self setContentOffset:CGPointMake (0, -160)];
    self.showsHorizontalScrollIndicator = YES;
    self.showsVerticalScrollIndicator = YES;
    self.alwaysBounceVertical = NO;
    self.alwaysBounceHorizontal = NO;
    self.bounces = YES;
    self.userInteractionEnabled = YES;
    self.musicGridView = [[[MusicGridView alloc] initWithCoder:coder] autorelease];
    // Rectangle where I put the music grid (origin is left aligned, and down 160 pixels to account for landscape view)
    self.musicGridView.frame = CGRectMake(0, 160, 480, 480);
    [self addSubview: musicGridView];

    self.menuButton = [UIButton buttonWithType:UIButtonTypeCustom];
    self.menuButton.frame = CGRectMake(0, 480, 480, 32);
    [menuButton setTitle: @"Tap to get Menu" forState: UIControlStateNormal];
    [menuButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [menuButton addTarget:self action:@selector(showMenu) forControlEvents:UIControlEventTouchUpInside];

    [self addSubview: menuButton];

Ответы [ 2 ]

1 голос
/ 31 августа 2012

просто установите точки x, y в

//it goes in particular pont of view

[scrollview setContentOffset:CGPointMake(x,y) animated:YES];

//if x=0 in loop, increase y value scrollview move only vertical direction
[scrollview setContentOffset:CGPointMake(0,y) animated:YES];

//if y=0 in loop, increase x values scrollview move only horizontal direction
[scrollview setContentOffset:CGPointMake(x,0) animated:YES];
0 голосов
/ 17 июня 2009

Андрей Таранцов сделал потрясающее краткое изложение различных причуд класса UIScrollView, включая код для различных обходных путей к общим проблемам. Возможно, стоит взглянуть.

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