Добавление подсмотров в 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]; } 

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

  • Как отключить сенсорный ввод ко всем представлениям, кроме самого верхнего вида?
  • Удалить вид, если выходить наружу
  • UIGestureRecognizer получает прикосновение, но перенаправляет его на UIControl.
  • CGAffineTranformRotate atan2 инактивация
  • Анимация высоты UIView снизу вверх
  • Завершение инициализации UIView приводит к сбою IBDesignable
  • Добавьте UITableViewCells между 2 UITableviewCells в UITableView с анимацией
  • UIPanGestureRecognizer в UIView ведет себя странно после того, как слой UIViews анимирован
  • Агент агента компоновщика выходит из строя при доступе к @IBInspectable UIImage
  • UIView KVO: Почему изменения в «центре» не вызывают уведомления KVO для «рамки»?
  • Просмотр скрыт под UINavigationBar iOS 7
  • Как получить текущий активный UITextField / UITextView и resignFirstResponder?
  • Interesting Posts

    Предупреждения о низкой памяти iOS и симулятор «Имитировать предупреждение о памяти»,

    Ошибка UIAlertController EXC_BAD_ACCESS – Swift

    Alamofire: переадресация HTTP (или нет)

    Когда обновляется размер содержимого UITableView с анимацией вставки / удаления строки

    iOS, быстро. Как сделать плавающую панель поиска с выпадающим списком, подобным этому? (Изображение включено)

    Некоторые маяки обнаруживаются только в Foreground или с

    NMSSH не подключается к SWIFT

    Уменьшить размер pdf – Цель c

    Визуальная модификация UIToolbar из раскадровки xcode

    Что такое iOS API для сканирования доступных wi-fi сетей

    Может ли кто-нибудь показать мне, как использовать CoreMIDI на iOS?

    Как исправить ошибку «nib но не получить UITableView»?

    Результатом теста iOS Swift является неразрешенный идентификатор

    Как предотвратить курсор VoiceOver от сброса его позиции при изменении компоновки

    GoogleMaps не является dylib, ошибка времени компиляции с файлом pod в последней версии

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