Добавление подсмотров в UIScrollView в ландшафтном режиме

У меня есть контроллер вида, который запускается в ландшафтном режиме с помощью UIScrollView. Я пытаюсь создать subviews и добавить их в UIScrollView, но размер кадра в представлениях был в портретном размере.

Вот мой код:

- (void)viewDidLoad { [super viewDidLoad]; [self.scrollView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight)]; NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor greenColor], [UIColor blueColor], nil]; for (int i = 0; i < colors.count; i++) { CGRect frame = self.scrollView.frame; frame.origin.x = frame.size.width * i; frame.origin.y = 0; UIView *subview = [[UIView alloc] initWithFrame:frame]; subview.backgroundColor = [colors objectAtIndex:i]; [self.scrollView addSubview:subview]; } self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * colors.count, self.scrollView.frame.size.height); self.scrollView.pagingEnabled = YES; self.scrollView.showsHorizontalScrollIndicator = NO; self.scrollView.showsVerticalScrollIndicator = NO; self.scrollView.scrollsToTop = NO; } 

Выход:

введите описание изображения здесь

One Solution collect form web for “Добавление подсмотров в UIScrollView в ландшафтном режиме”

 - (void)viewDidLoad { [super viewDidLoad]; [self.scrollView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight)]; NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor greenColor], [UIColor blueColor], nil]; for (int i = 0; i < colors.count; i++) { CGRect frame = self.scrollView.bounds; frame.origin.x = frame.size.width * i; frame.origin.y = 0; UIView *subview = [[UIView alloc] initWithFrame:frame]; subview.backgroundColor = [colors objectAtIndex:i]; [self.scrollView addSubview:subview]; } [self.scrollView setAutoresizesSubviews:NO]; self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * colors.count,self.scrollView.frame.size.height); self.scrollView.pagingEnabled = YES; self.scrollView.showsHorizontalScrollIndicator = NO; self.scrollView.showsVerticalScrollIndicator = NO; self.scrollView.scrollsToTop = NO; } - (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { currentPageOffset = [self.scrollView contentOffset].x / [self.scrollView bounds].size.width; if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) { for(int i=0;i<=2;i++) { UIView *currentView = [[self.scrollView subviews] objectAtIndex:i]; [currentView setFrame:CGRectMake((i)*currentView.frame.size.height, 0, [self.scrollView bounds].size.height,[self.scrollView bounds].size.width)]; } [self.scrollView setContentSize:CGSizeMake(self.scrollView.bounds.size.height *3, self.scrollView.bounds.size.width)]; } else { for(int i=0;i<=2;i++) { UIView *currentView = [[self.scrollView subviews] objectAtIndex:i]; [currentView setFrame:CGRectMake((i)*currentView.frame.size.height, 0,[self.scrollView bounds].size.height,[self.scrollView bounds].size.width)]; } [self.scrollView setContentSize:CGSizeMake(self.scrollView.bounds.size.height * 3, self.scrollView.bounds.size.width)]; } } - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { [self.scrollView setContentOffset:CGPointMake([self.scrollView bounds].size.width * currentPageOffset, 0.0f) animated:NO]; } 

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

  • Лучший способ рисовать круг поверх UIImageView IOS
  • Рисование с использованием Core Graphics выглядит довольно коротко на дисплее Retina
  • Невозможно изменить цвет круга в обратном порядке
  • UITapGestureRecognizer не работает для определенного массива
  • Как загрузить xib-файл в UIView
  • UIButton исчезает, когда я добавляю AVCaptureVideoPreviewLayer в свой UIView
  • UINavigationBar BarButtonItems не реагируют на краны, когда просмотр сдвинут вверх для клавиатуры
  • Программно созданный UILabel не изменяет размер при вращении
  • Установка цвета фона UIVIew
  • Как показывать индикатор активности при нажатии кнопки для загрузки следующего вида или веб-просмотра?
  • Проверьте, есть ли представление в представлении
  • Interesting Posts

    Как установить изображение полной ширины внутри UIScrollView в swift

    Получение «Этот элемент в настоящее время изменяется» при тестировании покупок на iPad

    Синтаксическая ошибка Swift 2.2: не может вызывать значение нефункционного типа «UITableView!»

    Swift 2 Ошибка дополнительного аргумента в вызове viewdidload image

    Имя приложения в Appstore отличается от вашего мобильного устройства

    Не удается найти <coreaudiokit / coreaudiokit.h> в ios8 xcode6

    Мое видео iPhone работает только в портретном режиме

    MPRemoteCommandCenter вызывает обработчик несколько раз в iOS

    Ответ URL-адреса кэша для автономного просмотра с помощью WKWebView

    Как исключить приложения Notes и напоминаний из UIActivityViewController?

    Главный блок «Блокировать» (dispatch_get_main_queue ()) и (или нет) периодически запускает currentRunLoop – в чем разница?

    UITextView setContentOffset с scrollEnabled = НЕТ в iOS7

    Разница в часах между двумя NSDate

    Отклонение AppCenter из-за SSO

    Как обнаружить, если я использую недокументированный api в iOS

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.