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

Objective-C

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

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

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

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

у меня есть таблица с вот такими UIView в ячейках, как можно сделать чтобы при смене ориентации экрана в альбомную увеличивалась длина UILabel, уменьшалась высота и дата подымалась выше?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2014, 13:29     Как сделать адаптацию интерфейса к альбомной ориентации экрана
Посмотрите здесь:
Построение интерфейса (литература) Objective-C
Objective-C Разбираемся с файлами интерфейса
Objective-C Искривление слайдера (Изменение интерфейса)
Objective-C Чем абстрактный класс отличается от интерфейса?
Objective-C Как сделать, чтобы текст букв изменялся как в караоке?
Visual Basic Как сохранить данные из RichTextBox с установкой альбомной ориентации?
C# WPF .NET 4.x DocumentViewer в альбомной ориентации
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
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
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
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
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
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
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
25.10.2014, 15:25     Как сделать адаптацию интерфейса к альбомной ориентации экрана #10
Пример расчета высоты до построения самой ячейки

Как сделать адаптацию интерфейса к альбомной ориентации экрана
Вложения
Тип файла: 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. Слишком большая разница между ожидаемой и реальной высотой вызовет "прыжки" таблицы при скролинге.)
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     Как сделать адаптацию интерфейса к альбомной ориентации экрана
Еще ссылки по теме:
Splash Screen растягивается в альбомной ориентации Android
MS Word Нумерация страниц для альбомной и книжной ориентации
MS Access Экспорт формы из MS Access 2007 в формате .rtf в альбомной ориентации
Как сделать адаптацию сайта HTML, CSS
как можно сделать адаптацию шаблона с одного движка на другой DLE

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

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

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