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

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

Войти
Регистрация
Восстановить пароль
 
smth
177 / 46 / 6
Регистрация: 23.06.2011
Сообщений: 247
#1

Auto layout после анимации и трансформации - Программирование iOS

26.03.2015, 17:34. Просмотров 595. Ответов 1

Добрый день! У меня возник вопрос относительно применения constraints после анимации с трансформацией:

Проведу аналогию с вебом: пусть у меня есть три квадрата (A, B, C) друг на другом. Я запускаю скрипт, который за секунду изменяет высоту B до нуля, в это время квадрат C подтягивается к A, не отрываясь от нижней границы B. Потому что в верстке "сказано", что C всегда прилеплен снизу к B.

Примерно такое же поведение я ожидал увидеть и с Auto Layout, но ошибся: у меня есть View, TabBar, SubView (внутри View) и label (внутри subView). У SubView заданы constraints 0 (top to View) , -16 (leading to View), -16 (trailing to View), 8 (bottom to TabBar). У label только привязка к левой и нижней сторонам subView по 8. Я убираю tabBar (вниз c поворотом на 90 градусов), увеличиваю размер subView и ожидаю, что label автоматически потянется за ним (ведь у него привязка 8 пикселей относительно нижней части subView). Однако, label остается на месте и я не могу понять, почему так происходит.

Везде советуют делать reference на нужный constraint, в коде изменять его значение, после чего делать layoutIfNeeded. Да, это работает, но что, если у меня множество элементов и у каждого должны меняться сразу несколько constraint'ов? Неужели нет какого-то более элегантного решения? Отдельно, я просто не могу осознать мозгом, почему 8-пиксельная привязка вдруг отменяется и, фактически, становится 49+8 пикселей?

Да, еще я не могу (пока) понять, что за странности происходят, если после первой анимации изменить оринтацию.

Тестовй проект во вложении (XCode 6).

Благодарю за потраченное время!
Вложения
Тип файла: zip ShowHideTabBar.zip (61.2 Кб, 3 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2015, 17:34     Auto layout после анимации и трансформации
Посмотрите здесь:
Пересчет во время анимации
TableView - изменение анимации удаления ячеек
Android После анимации открывать другой layout
Некорректно работают функции Auto-Tone, Auto contrast, Auto color Photoshop
XML/XSL Ошибка при открытии xls-файла после xslt-трансформации
Android Анимированный дизайн смены Layout или просто выдвигаемый layout
C++ Qt QWidget resize to layout, после SetFixedSize
Не хочет работать в layout, но включается в layout-land Android
Android At android.widget.LinearLayout.setChildFrame Layout в Layout-те
Остановка анимации после запуска
C# WPF Dispose контрола после анимации.
[WPF] Действие после анимации C# WPF

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Victorianec
20 / 20 / 6
Регистрация: 09.01.2014
Сообщений: 118
31.03.2015, 09:30     Auto layout после анимации и трансформации #2
Перед выполнением анимации для всех view, которые должны изменить свои позиции напишите
Objective-C
1
myView.translateAutoresizingMaskIntoConstraints = YES;
Yandex
Объявления
31.03.2015, 09:30     Auto layout после анимации и трансформации
Ответ Создать тему
Опции темы

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