UIScrollview не прокручивается за пределы высоты UIView, даже если кадр UIView увеличен

Я пытаюсь создать экран, где требуется прокрутка на 3,5-дюймовом экране iphone. Я приложил изображения, которые содержат конфигурацию uiviewcontroller, uiscrollview, uiview. Проблема заключается в том, что высота увеличивается, когда я запускаю iPhone 4s, некоторая часть прокрутки скрыта за пределами UIView (хотя высота uiview показывает 700, когда я печатаю высоту в консоли). В чем может быть проблема? Пожалуйста, помогите мне ?введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения


person Atom    schedule 25.03.2015    source источник
comment
Не могли бы вы добавить некоторые подробности о ваших ограничениях? Кажется, что они не настроены правильно, судя по красной отметке в вашей раскадровке   -  person Catalina T.    schedule 26.03.2015
comment
Я добавил ограничения, а красная метка исчезла. но все же 20% вида снизу скрыто   -  person Atom    schedule 27.03.2015
comment
Вы должны прочитать эту часть учебника в первую очередь. .UIScrollView и Autolayout   -  person Usama Sadiq    schedule 28.03.2015
comment
@Atom Я думаю, что это проблема автоматического макета, который вы даете представлению, сделайте одну вещь, удалите нижнее ограничение, и ваша проблема может быть решена.   -  person chirag shah    schedule 04.04.2015


Ответы (5)


У вас есть ограничения с отрицательными значениями. На последнем снимке экрана, который, как я предполагаю, является ограничениями представления внутри scrollView, нижнее смещение относительно суперпредставления равно -400.

Я думаю, именно поэтому вы не видите весь вид, потому что нижнее смещение отрицательное. Попробуйте установить это значение на 0, это должно исправить.

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

Дайте мне знать, как это происходит! Удачи!

person Catalina T.    schedule 28.03.2015

Когда вы работаете с 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.

И это будет работать как шарм (работает каждый раз, по крайней мере, для меня :)

person Yuvrajsinh    schedule 01.04.2015

ContentSize должен быть больше рамки прокрутки, чтобы было что прокручивать. :)

В этом случае они оба (600, 1300), поэтому измените высоту вашего scrollView на (320,480)

person Shruti    schedule 02.04.2015

Это немного сбивает с толку, но, как сказал вам Yuvrajsinh, вам нужно установить ограничения автоматического макета для вашего вида прокрутки на его 4 стороны для суперпредставления. Затем сделайте то же самое с содержимым scrollView, и самое главное: Установите фиксированную/не связанную с прокруткой высоту и ширину для содержимого

person Pablo A.    schedule 02.04.2015

Спасибо за информацию и предложения. Теперь он работает правильно. Что я сделал, это

  1. установить вид прокрутки сверху, слева, справа, снизу, выровненный по супервиду

  2. Установите вид содержимого прокрутки сверху, слева, справа, снизу, выровненный по прокрутке

  3. установите для представления содержимого представления прокрутки значение «Равная высота» и «Равная ширина» верхнему суперпредставлению.

  4. Затем я установил ограничение равной высоты, чтобы иметь низкий приоритет 250

    Теперь я могу прокручивать, когда это необходимо, в зависимости от размера экрана телефона :)

person Atom    schedule 06.04.2015