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

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

Восстановить пароль Регистрация
 
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
24.10.2014, 13:29     Как сделать адаптацию интерфейса к альбомной ориентации экрана #1
Как сделать адаптацию интерфейса к альбомной ориентации экрана

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

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

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

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

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

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

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

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

на скриншоте высота рассчитывалась вручную
noname_club
 Аватар для noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 575
25.10.2014, 15:25     Как сделать адаптацию интерфейса к альбомной ориентации экрана #10
Пример расчета высоты до построения самой ячейки

Как сделать адаптацию интерфейса к альбомной ориентации экрана
Вложения
Тип файла: zip test_textHeight.zip (43.8 Кб, 11 просмотров)
Xavier
in god we trust
 Аватар для Xavier
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. Слишком большая разница между ожидаемой и реальной высотой вызовет "прыжки" таблицы при скролинге.)
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];
}
вроде работает как надо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2014, 19:39     Как сделать адаптацию интерфейса к альбомной ориентации экрана
Еще ссылки по теме:

Как сделать свой шрифт в приложении? Objective-C
Как сделать offline кэш для браузера? Objective-C
Как сделать, чтобы скрол работал во все стороны? Objective-C
Как сделать пагинацию таблицы? Objective-C
Как сделать доступ к элементам массива по индексу и по литералу индекса? Objective-C

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

Или воспользуйтесь поиском по форуму:
noname_club
 Аватар для noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 575
25.10.2014, 19:39     Как сделать адаптацию интерфейса к альбомной ориентации экрана #13
3) RowHeight ставь равной UITableViewAutomaticDimension
http://www.appcoda.com/self-sizing-cells/
IOS7 несовместимо
Yandex
Объявления
25.10.2014, 19:39     Как сделать адаптацию интерфейса к альбомной ориентации экрана
Ответ Создать тему
Опции темы

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