2016-05-18 2 views
1

im new для программирования ios и im, пытающегося добавить сегментированный контроллер в scrollview, потому что seg-контроллер слишком велик для экрана, поскольку прокрутка прокручивается горизонтально. Я не уверен, почему это не прокрутка. Я думаю, что я пропустил что-то маленькое, но я не могу его найти. все помогает! Спасибо!просмотр прокрутки без прокрутки по горизонтали

мой код в viewDidLoad:

scrollView.delegate = self 
scrollView.showsHorizontalScrollIndicator = true 
self.scrollView.alwaysBounceHorizontal = true 
self.scrollView.scrollEnabled = true 
self.scrollView.addSubview(segControl) 
self.scrollView.pagingEnabled = true 
self.scrollView.directionalLockEnabled = false 
self.scrollView.contentSize.height = segControl.frame.height 
self.scrollView.contentSize.width = segControl.frame.width 
+0

Какова ценность 'segControl.frame.width'? Это больше, чем 'scrollView.frame.width'? – ozgur

+0

scrollView.contentSize должен быть больше scrollview.frame, чтобы он прокручивался. – Sumanth

+0

да im 99% уверен, что это так. как я могу это сделать, если это не так? или как я могу проверить, не так ли? – user3462448

ответ

1

UIScrollView довольно легко работать: до тех пор, как его contentSize больше, чем его собственный frame.size, это позволит вам прокручивать раскрыть его подвидов, которые от его видимая область.

Возможно, проверьте значения segControl.frame.width и scrollView.frame.width: ширина прокрутки segControl должна быть больше для прокрутки для прокрутки.

Также стоит проверить, правильно ли находится scrollView.frame и где-то где-то не лежит экран: например. scrollView.frame.origin.x + scrollView.frame.width меньше ширины экрана.

Если вы посмотрите на скриншот, scrollView.contentSize.width должен быть старше 320 (так как он занимает всю ширину экрана симулятора, который является iPhone 5/5S в вашем случае). Поскольку вы указали, что ваши значения ширины содержимого как 216, похоже, что вы обращаетесь к кадрам в неправильном обратном вызове, который запускается, когда значения еще не установлены правильно. Я могу предположить, переместив

scrollView.contentSize.height = segControl.frame.height 
scrollView.contentSize.width = segControl.frame.width 

часть в viewWillAppear() вместо viewDidLoad().

+0

я сделал, он больше. я напечатал его, вот что появилось в области отладки. ширина рамки прокрутки: 0.0 размер содержимого: 216.0 – user3462448

+0

Как насчет 'scrollView.frame' - это нормально, а не на экране, случайно? –

+0

У меня есть trailingview и ведущие ограничения, равные супервизу. поэтому я так не думаю. – user3462448

Смежные вопросы