Как заставить работать scrolling в ios приложении?
Пишу master detail приложение на iphone, это мой первый опыт написания программ на ios. Проблема заключается в том, что, не получается реализовать листание текста, прикладываю видео того, как это работает, скажите в чем моя ошибка? Видео
Уточните, пожалуйста, о каком скролинге речь? Вроде же текст листается (скролится)
Из проблем увидел только кривую верстку которая не поддерживает "короткие" девайсы
А, понятно. для этого Вам нужно выстроить немного другую иерархию:
базовая вьюшка - uiscrollview, содержащая в себе вверху uiimageview с картинкой и под ней UILabel с текстом и выставленным multiline (ну или uitextview с отключенным скролом что бы не конфликтовать). Для uiscrollview должен быть корректно установлен contentsize
@Flanker_4 у меня вообще немного по другому программа устроенна, есть массив, где хранятся данные и они оттуда сами достаются и создается нужное кол-во строчек таблицы, вот часть кода, которая за вывод на экран отвечает i.imgur.com/f3IDxAS.png
Залейте код на гитхаб, иначе сложно будет указывать на проблемные места. Из того что я вижу - у вас не верно выстроенная иерархия вьюшек (представление) в xib'e|storyboarde. Вам нужно сначала положить UIScrollView а у же в него вставить все остальные вьюхи
Что у Вас было:
scrollView: [contentView:[imageView, labelView, textView]]
И эти все вьюшки имели постоянный размер, который помещался на экран девайса. Выходила ситуация, когда главный scrollView попросту не скролил ничерта. Вы могли добиться желаемого поведения следующим образом:
1) Сделать размер textView вариативным, в зависимости от контента (textView.frame.size.height = textView.contentSize.height)
2) обновить размер contentView в соотвествии с изменившимся размером textView (contentView.frame.height = imageView.height+labelView.height+textView.height)
3) обновить contentSize у ScrollView так как Вы делали (scrollView.contentSize.height = contentView.height)
Обратите внимание, что я привожу описание реализации на псевдоязыке , так как в проекте включен autolayout все становится не так просто...
Я не стал так делать, потому что получилось бы много кода, да и приложение криво работало на других девайсах (на iphone 6 все плыло). По этому сделал все правильно, во-первых убрал костыль ввиде contentView и выставив правильные autolayout constrainte для вьюшек внутри scrollView: все резиновое по ширине; по высоте у label и image view фиксировано и прибито к потолку, а у textView высота меняется , но не может быть ниже определенного числа, но при этом textView прибит label и к полу scrollView.
Дальше в коде мы просто устанавливаем размеры области скрола у scrollView(которые базируются на размерах текста), а это, благодаря constraince растягивает textView само