Я пытаюсь создать экран, где требуется прокрутка на 3,5-дюймовом экране iphone. Я приложил изображения, которые содержат конфигурацию uiviewcontroller, uiscrollview, uiview. Проблема заключается в том, что высота увеличивается, когда я запускаю iPhone 4s, некоторая часть прокрутки скрыта за пределами UIView (хотя высота uiview показывает 700, когда я печатаю высоту в консоли). В чем может быть проблема? Пожалуйста, помогите мне ?
UIScrollview не прокручивается за пределы высоты UIView, даже если кадр UIView увеличен
Ответы (5)
У вас есть ограничения с отрицательными значениями. На последнем снимке экрана, который, как я предполагаю, является ограничениями представления внутри scrollView, нижнее смещение относительно суперпредставления равно -400.
Я думаю, именно поэтому вы не видите весь вид, потому что нижнее смещение отрицательное. Попробуйте установить это значение на 0, это должно исправить.
Если это не решит вашу проблему, возможно, вы могли бы указать, для какого вида существуют ограничения из изображений.
Дайте мне знать, как это происходит! Удачи!
Когда вы работаете с UIScrollView
и AutoLayout
, это всегда сложно.
Вы должны добавить все свои подпредставления к одному UIView
и добавить это представление к UIScrollView
.
Необходимые ограничения автомакета:
Для UIScrollView:
Left to Superview
Right to Superview
Top to Superview
Right to superview
Для внутреннего представления UIScrollView (т.е. единственного представления внутри ScrollView):
Width & Heigh
Left, Right, Top and Bottom constraint to Superview (i.e. ScrollView)
Also add Horizontal Centre to Superview.
И это будет работать как шарм (работает каждый раз, по крайней мере, для меня :)
ContentSize должен быть больше рамки прокрутки, чтобы было что прокручивать. :)
В этом случае они оба (600, 1300)
, поэтому измените высоту вашего scrollView на (320,480)
Это немного сбивает с толку, но, как сказал вам Yuvrajsinh, вам нужно установить ограничения автоматического макета для вашего вида прокрутки на его 4 стороны для суперпредставления. Затем сделайте то же самое с содержимым scrollView, и самое главное: Установите фиксированную/не связанную с прокруткой высоту и ширину для содержимого
Спасибо за информацию и предложения. Теперь он работает правильно. Что я сделал, это
установить вид прокрутки сверху, слева, справа, снизу, выровненный по супервиду
Установите вид содержимого прокрутки сверху, слева, справа, снизу, выровненный по прокрутке
установите для представления содержимого представления прокрутки значение «Равная высота» и «Равная ширина» верхнему суперпредставлению.
Затем я установил ограничение равной высоты, чтобы иметь низкий приоритет 250
Теперь я могу прокручивать, когда это необходимо, в зависимости от размера экрана телефона :)