2012-01-31 7 views
1

Кажется, что когда я меняю ориентацию своего телефона, когда смотрю изображение в виде прокрутки, доза прокрутки не меняет ориентацию с телефона.Размер UIScrollview при изменении ориентации

Мне интересно, может ли кто-нибудь объяснить мне, как это сделать.

эти настройки в моем интерфейсе строитель

enter image description here

Я просто делал некоторые исследования и теперь имею первый рабочий выбор, но если я попробовать другую картину, dosnt работы .. и я м не знаю, почему .. Heres мой код

это то, что сделало его полупрозрачным работы

scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 


- (void)loadImage:(NSString *)myImageName 
{ 
// //Create scrollview 

    scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 
    scrollView.delegate = self; 

    //Create scrollviewimage 
    if ([myImageName isEqualToString:@"one"]) { 
     image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"hyundai.png"]]; 
     containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 350, 550)]; 
     NSLog(@"1"); 
    } 
    if ([myImageName isEqualToString:@"two"]) { 
     image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"keso.png"]]; 
     containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 600, 520)]; 
     NSLog(@"2"); 
    } 
    if ([myImageName isEqualToString:@"three"]) { 
     image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"conforti.png"]]; 
     containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 600, 700)]; 
     NSLog(@"3"); 
    } 

    //Add subview 
    [containerView addSubview:image]; 
    //initViews 
// scrollView.contentSize = containerView.frame.size; 
    [scrollView addSubview:containerView]; 

    //scrolling 
    scrollView.minimumZoomScale = 1.0; 
    scrollView.maximumZoomScale = 31.0; 
    scrollView.BackgroundColor = UIColor.whiteColor; 
    [scrollView setZoomScale:scrollView.minimumZoomScale]; 

    //highrachy 
    [self.view addSubview:scrollView]; 
    scrollView = nil; 
} 

EDIT: ответ на @D J

это выход

2012-02-01 13:30:35.683 Diagram Test[1672:707] The view controller <UINavigationController: 0x14cdd0> returned NO from -shouldAutorotateToInterfaceOrientation: for all interface orientations. It should support at least one orientation. 
2012-02-01 13:30:44.182 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:47.097 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:47.158 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:51.509 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:51.555 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:55.473 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:55.519 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:59.293 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:30:59.352 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:31:02.237 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:31:02.281 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:31:03.814 Diagram Test[1672:707] height = (null)i, width = (null)i 
2012-02-01 13:31:03.858 Diagram Test[1672:707] height = (null)i, width = (null)i 
+0

Какой у вас код для добавления изображения в UIScrollView? Другие объекты меняют ориентацию? фактически после того, что вы разместили, как будто у вас есть UIScrollView, охватывающий весь экран Iphone, это, вероятно, ваш контроллер. – DJPlayer

ответ

0

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

Также смотрите изменяющее scrollview.contentSize и scrollView.contentOffest в willRotateToInterfaceOrientation: метод, если необходимо сохранить изображение в центре и т.д.

+0

Я уверен, что контент в порядке, проверьте мой вопрос снова, поскольку я обновил его тем, что я только что нашел, что работал на одной из картин. –

0

Я не чувство ничего вращается ..

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    NSLog(@"height = %i, width = %i",scrollviewname.bounds.size.height, scrollviewname.bounds.size.width); 
    return true; 
} 

Я набрал этот код из памяти .. так что если есть правовая ошибка извините .. проверьте эти журналы, чтобы убедиться, что uiscrollview сначала вращается.

+0

Я отправил ответ на этот вопрос в моем вопросе –

2

Вращение профиля прокрутки изменяет размеры границ, но не contentSize, на которые не влияет автоматизация.

ContentSize - это прокручиваемая область прокрутки, поэтому вам нужно будет изменить ее размер вручную во время вращения. Это может привести к множеству других настроек, поэтому следует предупредить, что поворот scrollview может быть немного сложным.

Например, если вы прокручиваете список изображений, вам также необходимо перестроить положение прокрутки и, возможно, изменить настройку масштабирования в соответствии с новой шириной и высотой.

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

Еще один совет: играйте с contentSize без поворота, чтобы вы могли видеть, как это влияет на прокрутку и видимую область.

+0

приветствия .. я нашел некоторые из этого трудным путем .. боль в большом времени –

Смежные вопросы