2009-06-16 3 views
1

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

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

Теперь, с ориентацией в Landscape, scrollview начинается в левом верхнем углу, когда я действительно хочу, чтобы он начинался с исходной точки ориентации (с момента, когда она была в портретном режиме), которая будет внизу слева. Но я не могу понять, как изменить исходную отправную точку прокрутки. Я попробовал 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]; 

ответ

0

Andrey Tarantsov проделала awesome rundown различных причуд UIScrollView класса, в том числе код для различных обходных общих проблем. Возможно, стоит взглянуть.

1

просто установить точки х, у в

//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]; 
Смежные вопросы