#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, т. е. ширина и высота, должны быть больше размера фрейма для целей прокрутки.
Спасибо…