Почему не базовый UIScrollView с несколькими кнопками прокрутки? - PullRequest
2 голосов
/ 02 апреля 2011

Почему базовый UIScrollView с несколькими кнопками прокрутки не работает?

Итак, все, что я сделал, это:

  • Создание приложения для iPhone на основе вида
  • перетаскиваниев UIScrollView в xib-файл главного контроллера
  • представление прокрутки теперь находится как дочерний элемент View в IB
  • в IB в scrollview увеличивает его высоту просмотра до 1000
  • addнекоторые кнопки в представлении прокрутки (поэтому они выглядят как дочерние элементы представления прокрутки)
  • также создали переменную экземпляра, а свойство IBOutlet синтезирует
  • , связанное в IB с выходом scrollView владельца файла дляпредставление прокрутки
  • проверено, чтобы убедиться, что в представлении прокрутки в IB был отмечен атрибут «прокрутка включена»

Но, тем не менее, после всего этого в симуляторе iPhone он не позволяет прокручиватьвид?

Ответы [ 3 ]

5 голосов
/ 02 апреля 2011

Только еще одна вещь, которую вы должны сделать: установите для свойства contentSize в представлении прокрутки подходящее значение:

[scrollView setContentSize:CGSizeMake(
   scrollView.bounds.size.width,
   CGRectGetMaxY(bottommostSubview.frame)
)];

Где bottommostSubview - это выход, подключенный к подпредставлению прокрутки, ближайшему к низу. Вы также можете написать метод для автоматического поиска этого представления или просто жестко закодировать значение, если вы знаете, что размер никогда не изменится.

По умолчанию contentSize равно CGSizeZero, что эффективно отключает прокрутку.

4 голосов
/ 02 апреля 2011

Возможно, вы не хотите менять свойство scrollviews frame.size.height на 1000.0, но ваши scrollviews contentSize.height.

0 голосов
/ 10 мая 2016

Нет, правильный ответ:

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    [self.scrollView setContentSize:CGSizeMake(320, 1700)];  
}

Исходный ответ, который я основал по следующей ссылке:

UIScrollView не будет прокручиваться (Раскадровки) -> Найти ответ Эваны

Я трачу много времени, пытаясь реализовать прокрутку (и неоднократно).Я даже использовал 2 представления (UIScrollView и UIView внутри первого)

Это не обязательно!

КЛЮЧ ЕСТЬ: viewDidLayoutSubviews

ВРаскадровка реализует UIScrollView как любой другой элемент,

, но ключ setContentSize в методе viewDidLayoutSubviews

...