Как можно генерировать вертикальную прокрутку?

#ios #uiscrollview

#iOS #uiscrollview

Вопрос:

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

 scrollView1 = [[UIScrollView alloc] initWithFrame:CGRectMake(25,50,700,175)];
[self.view addSubview:scrollView1];
[scrollView1 setBackgroundColor:[UIColor lightGrayColor]];
[scrollView1 setCanCancelContentTouches:NO];
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView1.clipsToBounds = YES;        // default is NO, we want to restrict drawing within our scrollview
scrollView1.scrollEnabled = YES;
scrollView1.pagingEnabled=YES;
  

Ответ №1:


Прокрутка UIScrollView основана на свойстве contentSize, которое является значением CGSize.

Всякий раз, когда width или height больше рамки вида прокрутки, вид прокрутки разрешает прокрутку (если для всех свойств showsVerticalScrollIndicator , showsHorizontalScrollIndicator и scrollEnabled установлено значение YES — значения по умолчанию)

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

 scrollView1.contentSize = CGSizeMake(700, 300);
  

Комментарии:

1. для вертикальной прокрутки это было бы scrollView1.contentSize = CGSizeMake(175,1000);

Ответ №2:

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

Ответ №3:

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

 scrollView1 = [[UIScrollView alloc] initWithFrame:CGRectMake(25,50,175,700)];
  

Ответ №4:

Прокрутка любого вида прокрутки полностью зависит от свойства contentSize. Здесь в вашем коде вы не указали размер содержимого для вашего scrollView1.

Итак, вы должны добавить это,

 scrollView1.contentSize = CGSizeMake(700, 1750);
  

Здесь мы предоставили два параметра, один из которых — ширина, а другой — высота. Это дает 10-кратную вертикальную прокрутку, потому что высота вашего фрейма составляет 175 пикселей, а высота contentSize — 1750 пикселей.

Примечание: Ваши значения contentSize, т. е. ширина и высота, должны быть больше размера фрейма для целей прокрутки.

Спасибо…