Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
#1

Как сделать адаптацию интерфейса к альбомной ориентации экрана - Objective-C

24.10.2014, 13:29. Просмотров 1111. Ответов 12
Метки нет (Все метки)

Как сделать адаптацию интерфейса к альбомной ориентации экрана

у меня есть таблица с вот такими UIView в ячейках, как можно сделать чтобы при смене ориентации экрана в альбомную увеличивалась длина UILabel, уменьшалась высота и дата подымалась выше?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2014, 13:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать адаптацию интерфейса к альбомной ориентации экрана (Objective-C):

Принудительная смена ориентации экрана в iOS 7 - Программирование iOS
Доброго времени суток. Мое приложение спроектировано таким образом, что первый и второй экраны поддерживают только портретную ориентацию,...

Как сохранить данные из RichTextBox с установкой альбомной ориентации? - Visual Basic
На машине Word-а нет. Нужно строить rtf-файлы, чтобы на другом ПК они сразу открывались в альбомной ориентации.

.NET 4.x DocumentViewer в альбомной ориентации - C# WPF
Есть FlowDocument, в котором хранится текст и таблица. Этот Document перегоняется в XPS и выводится в DocumentViewer. Но DocumentViewer в...

Splash Screen растягивается в альбомной ориентации - Программирование Android
Во время загрузки приложения необходимо показывать фоновую картинку, исходный размер 1920 x 1080 пикселей. Если сделать так: <?xml...

Плывет верстка в альбомной ориентации на планшете и мобилах - HTML, CSS
Верстка на портретной стандартной версии сидит хорошо на десктопах, планшете и мобилах. Но как только начинаешь вращать на альбомную версию...

Нумерация страниц для альбомной и книжной ориентации - MS Word
Добрый день! Есть такая задача, нумерация страниц в документе, страницы которого имеют различную (альбомную и книжную) ориентацию. То...

12
zulkis
684 / 611 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
24.10.2014, 14:07 #2
vitalik_a, NSLayoutConstraints
0
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
24.10.2014, 14:15  [ТС] #3
не получается найти достаточно полный пример для понимания как это работает
а UIViewAutoresizing - не имеет к этому отношения?
0
zulkis
684 / 611 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
24.10.2014, 14:43 #4
vitalik_a, UIViewAutoresizing - это другая, более старая фича. Работает она по другому.
vitalik_a, читайте документацию. Там очень подробно констрэйнты расписаны.
0
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
24.10.2014, 15:07 #5
Насчет констрэйнтов хочу добавить от себя:
Очень понравилась вот такая категория для работы с констрейнтами из кода:
https://github.com/smileyborg/UIView-AutoLayout

Может, вам тоже пригодится.
1
noname_club
104 / 95 / 11
Регистрация: 01.05.2013
Сообщений: 600
24.10.2014, 22:56 #6
vitalik_a, UIViewAutoresizing - это другая, более старая фича. Работает она по другому.
Не смотря на то что с нее можно сдувать пыть. По простоте реализации она на порядок опeрежает новомодный NSLayoutConstraints

Добавлено через 5 минут
у меня есть таблица с вот такими UIView в ячейках, как можно сделать чтобы при смене ориентации экрана в альбомную увеличивалась длина UILabel, уменьшалась высота и дата подымалась выше?
По теме

Тут нужно через NSMutableAttributedString вставить текст в один UILabel

Тогда он будет выровнен автоматически, без использования выравнивания и растяжения
0
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
25.10.2014, 03:24  [ТС] #7
спасибо за помощь
сделал растягивание заголовка по ширине и подъём даты под заголовок с использованием NSLayoutConstraint
http://i.imgur.com/ao6IDp6.png
0
noname_club
104 / 95 / 11
Регистрация: 01.05.2013
Сообщений: 600
25.10.2014, 11:23 #8
То есть без каких либо расчетов высоты текста просто сделал растяжение?

А если текст там будет такой длинный что выравнивание его растянет за границы ячейки?

И судя по скриншоту ячейки таблицы имеют неодинаковую высоту. Следовательно перед выводом ячейки нужно расчитать ее высоту. NSLayoutConstraints разве умеет рассчитывать высоту еще не созданнной ячейки?
0
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
25.10.2014, 14:03  [ТС] #9
я уже немного сомневаюсь в пользе NSLayoutConstraints для содержимого ячеек таблицы
ведь высоту строк он изменить не может, а значит её всеравно надо делать self.tableView reloadDara и рассчитывать новую высоту вручную

на скриншоте высота рассчитывалась вручную
0
noname_club
104 / 95 / 11
Регистрация: 01.05.2013
Сообщений: 600
25.10.2014, 15:25 #10
Пример расчета высоты до построения самой ячейки

Как сделать адаптацию интерфейса к альбомной ориентации экрана
0
Вложения
Тип файла: zip test_textHeight.zip (43.8 Кб, 11 просмотров)
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
25.10.2014, 17:11 #11
Цитата Сообщение от vitalik_a Посмотреть сообщение
ведь высоту строк он изменить не может, а значит её всеравно надо делать self.tableView reloadDara и рассчитывать новую высоту вручную
как это не может. Можно вообще задачу определения высоты ячейки дать самой ячейке.
Основные моменты для self - sizing cell:
1) Width для ячейки определяет самое tableView, естественно.
2) Добавляешь нужные Auto Layout constraints для элементов в ячейке (которые и будут определять твою высоту).
3) RowHeight ставь равной UITableViewAutomaticDimension
4) и еще свойство estimatedRowHeight ставь приблизительно равное высоте ячейки (например если ты знаешь что ячейка у тебя будет приблизительно в пределах 80 -120, ставь 100. Слишком большая разница между ожидаемой и реальной высотой вызовет "прыжки" таблицы при скролинге.)
0
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
25.10.2014, 17:52  [ТС] #12
сейчас сделал рассчёт высоты с учетом ориентации и добавил reloadData после поворота
Objective-C
1
2
3
4
5
6
//
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    //
    [self.tableView reloadData];
}
вроде работает как надо
0
noname_club
104 / 95 / 11
Регистрация: 01.05.2013
Сообщений: 600
25.10.2014, 19:39 #13
3) RowHeight ставь равной UITableViewAutomaticDimension
http://www.appcoda.com/self-sizing-cells/
IOS7 несовместимо
0
25.10.2014, 19:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2014, 19:39
Привет! Вот еще темы с ответами:

Экспорт формы из MS Access 2007 в формате .rtf в альбомной ориентации - MS Access
Доброго времени суток! Есть такой вопрос: нужно экспортировать форму из MS Access в формате Word (.rtf). Размер подогнал для альбомного...

Как сделать адаптацию сайта - HTML, CSS
Привет всем, сделал сайт который хотел но столкнулся с такой проблемой как адаптация сайта под разные разрешения экрана. Проблема в том что...

как можно сделать адаптацию шаблона с одного движка на другой - DLE
интересует такой вопрос.. как можно сделать адаптацию шаблона с одного движка на другой, а точнее есть у меня один шаблон от dle я хочу его...

Как в DataReport сделать страницу АЛЬБОМНОЙ. - Visual Basic
Как в DataReport сделать страницу АЛЬБОМНОЙ. А то во всех примерах используется книжная. У меня все данные не вмещаются!


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru