Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
#1

Динамические компоненты на Scroll-е (autolayout). Вёрстка - Программирование iOS/iPhone

17.02.2015, 20:03. Просмотров 604. Ответов 4
Метки нет (Все метки)

Здравствуйте. В сториборде есть вьюха freeform вышиной примерно 700 на ней во всю растянут scrollview на нем лежит динамически меняющаяся таблица (скролл в ней отключен) и view, который тоже динамически должен менять вышину в зависимости от текста лейбла, лежащего в нем. (См. вложение. лейбл в него на картинке не положен.) Сегодня побывал весь день и так и эдак, но либо таблица не растягивается, либо растягивается не полностью, либо не скроллится либо ещё что нибудь.... У меня идеи иссякли. А очень надо! Помогите пожалуйста. Можно либо архивчик с простеньким проектом к ответу прикрепить, либо так на словах описать что с чем и как связать. Заранее спасибо!
Миниатюры
Динамические компоненты на Scroll-е (autolayout). Вёрстка  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2015, 20:03     Динамические компоненты на Scroll-е (autolayout). Вёрстка
Посмотрите здесь:

Delphi Динамические компоненты
Динамические компоненты C# C#
C++ Builder Динамические компоненты
динамические компоненты Delphi
Scroll view Objective-C
Delphi Динамические компоненты
Align и динамические компоненты C++ Builder
AutoLayout и смена ориентации
Xcode AutoLayout
Objective-C Autolayout and constraints - некорректное расположение контроллов на разных экранах
Вёрстка в xCode
Delphi PopupMenu и динамические компоненты

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
18.02.2015, 00:05     Динамические компоненты на Scroll-е (autolayout). Вёрстка #2
не совсем понял, что именно нужно?
csrollview в нем таблица, после таблицы текст? вам нужно генерировать динамически высоту таблицы и текста под ней?
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
18.02.2015, 09:05  [ТС]     Динамические компоненты на Scroll-е (autolayout). Вёрстка #3
В общем да, так и есть. А более подробно схема разметки должна выглядеть следующим образом: см. вложения. Сверху неподвижно, как шапка лейбл, картинка и кнопка, а под ними на скролле таблица (без собственного скрола) и вьюха с лейблами, растягивающаяся под их контент. И с динамически растягиваемой под нужды Label вьюхой я проблемму решил сегодня так: привязал лейблы изнутри к вьюхе, максимальное кол-во строк = 0, и linebreak = word wrap. Вьюха растягивается нормально. Но вот как быть со скроллом и таблицей? Получается, что внутри скролла не должно быть ни одного констрейнта на высоту, только на ширину, но для вертикального скролла они необходимы. Иначе он не скролит. А как только появляется ограничение на высоту, то таблица строиться не до конца или не строиться вовсе. И ограничения >=, <= результатов тоже почему то не дают.
Миниатюры
Динамические компоненты на Scroll-е (autolayout). Вёрстка  
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
18.02.2015, 20:38     Динамические компоненты на Scroll-е (autolayout). Вёрстка #4
Тогда я бы реализовал следующим образом:
Сначала запрашивал ширину страницы, дальше вычислял высоту таблицы, например в методе heightForRowAtIndexPath. Высоту текста можно определить с мощью следующего метода:
Objective-C
1
2
3
4
5
6
NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:размер текста]};
            CGRect labelSize = [name boundingRectWithSize:CGSizeMake(ширина онка, 100000)
                                                       options:NSStringDrawingUsesLineFragmentOrigin
                                                    attributes:attributes
                                                       context:nil];
высота текста = labelSize .size.height;
дальше можно по таким же принципам генерировать текст и таблицу.
Надеюсь я понятно изложил свою мысль. Если нет, пишите
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
19.02.2015, 09:35  [ТС]     Динамические компоненты на Scroll-е (autolayout). Вёрстка #5
Да изложили понятно. И в таблице и так присутствует расчет высоты ячеек, но не в этом, как оказалась суть проблеммы. На одном из форумов http://www.imaladec.com/forum/index....498#entry12498, мне подсказали не размещать таблицу и вьюху на скролл, а добавить всё что ниже таблице в её футер. Но тут возникла другая проблемка: Вьюконтроллер притерпел некоторые внешние изменения и теперь выглядит так: см вложение 1. Теперь в футере (выделен бирюзовым) лежит сверху кнопка, ниже его вьюха с лейблами (выделена синим), которая то и расширяется динамически, ниже ещё две кнопки и 3 лейбла. Так вот когда синяя вьюха расширяется, она толкает все низ лежащие компоненты вниз, а самый нижний лейбл, в свою очередь не толкает и не расширяет футер. Т.о. в зависимости от вышины синей вьюхи часть низ лежащих компонентов исчезают, хоть и привязаны к низу футеру жесткими связями. Наверное прийдется сумировать высоту всех компонентов, лежащих в футере и назначать её ему. Но вот не могу понять, почему свойство высоты (Frame.Height) у синей вьюхи меняется только после того, как мы вернулись на этот вьюконтроллер из другого, т.е. только во ViewWillAppear. Хотя по факту, визуально высота его меняется мгновенно, после того, как по нажатию кнопки в лейблы попал соответствующий текст.
Миниатюры
Динамические компоненты на Scroll-е (autolayout). Вёрстка  
Yandex
Объявления
19.02.2015, 09:35     Динамические компоненты на Scroll-е (autolayout). Вёрстка
Ответ Создать тему
Опции темы

Текущее время: 18:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru