2015-03-18 2 views
2

У меня проблема. За последние 3-4 дня я пытаюсь найти решение, но безрезультатно. Я использую xib для загрузки представления в качестве подзапроса для scrollView. Я использую классы iOS8 и размер и авто-макет. Проблема заключается в том, что представление добавляется в scrollview, но scrollview не может выйти за пределы точки. То есть я не могу прокручивать донизу. Это разочаровывает, поскольку я только начал разрабатывать приложения для iOS.Scrollview with View загружен из xib

Я прилагаю скриншоты к ограничениям, которые я применил. Надеюсь помочь.

enter image description here

Первый скриншот вид фактического контроллера представления, который держит scrollview.And Уложите Detail Info Посмотреть является заполнителем, где добавляется вид загружается из XIb. На скриншоте также перечислены различные ограничения.

Второй и третий скриншоты - это файл xib, который я пытаюсь загрузить в scrollView.

enter image description here

enter image description here

Пожалуйста, дайте мне знать, где я не так.

+0

Если вы добавили представление в scrollView ([scrollView addSubview: view], вы устанавливаете после них ограничения для просмотра? – iOSfleer

+0

Это представление автоматически добавляется в scrollview, поскольку я переопределял кодер init в моем пользовательском представлении. не было добавлено ограничений для добавленного представления –

+0

Трудно видеть, но похоже, что высота подзадачи установлена ​​на 367? Это фактическая высота представления, содержащегося в xib? Если нет, вы усекаете представление с этим ограничением по высоте. Можете ли вы также использовать код, который вы используете для загрузки xib, и добавить его в раскадровку? – jeffro37

ответ

-1

В самом интерфейсном конструкторе есть возможность просмотреть ваши ограничения для всех доступных устройств. Это гарантирует, что ограничения будут работать нормально для всех доступных устройств Apple. Вот краткое руководство, которое поможет вам в этом.

http://adoptioncurve.net/archives/2014/08/working-with-size-classes-in-interface-builder/

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

Счастливое кодирование. Cheers :)

+0

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

+0

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

+0

Я действительно не знаю, что делать здесь. Макет отлично смотрится в каждом реальном устройстве. Разработка iOS не соответствует Android, хотя и является дорогостоящей платформой. –

0

Ваша проблема с представлением, которое является непосредственным подчиненным вашим scrollview.In autolayout, scrollView вычисляет размер своего содержимого в соответствии с его подвью.

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

1. для просмотра прокрутки установите все 4 ограничения, а именно: передние, задние края, верхнее и нижнее ограничения.

2.Настроим вид, который является непосредственным подходом к вашему прокрутку, установите все 4 ограничения (ведущие, конечные, верхние и нижние) вместе с этими установками ограничений по высоте и сделайте ширину равной прокрутке. , если высота вашего непосредственного подвыбока больше, чем размер экрана или прокрутка, он будет точно прокручиваться.

Запустите и проверьте, можете ли вы прокручивать и продолжить движение.

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

для более четкого настройки понимания constarints в Scrollview см это https://www.youtube.com/watch?v=4oCWxHLBQ-A

+0

Спасибо за ссылку. Я сделал то же самое, что вы предлагаете. Вы можете увидеть все ограничения на снимках экрана, которые я поделил. Проблема в том, что представление загружается из xib во время выполнения. –

+0

Как сказал u, переопределил метод init, можно показать мне этот метод, который сделал в этом –

1

Как было сказан выше, проблема связана с размером содержимого вашей точки зрения прокрутки. Просто попробуйте добавить ширину и высоту (либо явные, либо неявные: см. Объяснение ниже). Ограничения на каждые прямое представление вашего прокрутки, а затем определить все ограничения расстояния между ними. * Под «неявными» ограничениями ширины/высоты я подразумеваю такие вещи, как отношение «соотношение сторон», «равная ширина/высота» между двумя представлениями. P.S. При работе с элементами управления прокруткой и автоматической компоновкой должен быть исчерпывающий (некоторые из которых могут показаться избыточным) набор ограничений для подсмотров. Надеюсь, это поможет.

+0

. Я добавил все соответствующие ограничения ко всем представлениям в scrollview. Но все равно это не сработает. Мне удалось прокручиваться после того, как я вручную установил размер содержимого в жестко запрограммированное значение, но этот подход не подходит для iPhone 6 и 6 плюс. –

+0

Поскольку я не вижу всей картины того, что у вас есть, я могу только рекомендовать вам установить размер содержимого прокрутки в свойScrollView.bounds.size при вызове viewDidLayoutSubviews (я предполагаю, что нет вставки прокрутки внутри вашего вида прокрутки и что вы используете контроллеры представлений). Приветствия. –

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