Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
dev.nikor
25 / 26 / 3
Регистрация: 26.07.2010
Сообщений: 297
#1

Xcode AutoLayout

28.05.2014, 16:02. Просмотров 1292. Ответов 9
Метки нет (Все метки)

Здравствуйте. Я в IB сделал интерфейс с несколькими UILabel. Самый первый label - опциональный, то есть я могу в рантайме удалить его из view. Вот в чем вопрос, если я удалю первый label, то можно ли с помощью AutoLayout сделать так, чтобы второй label встал на место первого, третий на место второго и так далее?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2014, 16:02
Ответы с готовыми решениями:

AutoLayout и смена ориентации
Добрый день! Использую AutoLayout. При повороте экрана все растягивается как...

Динамические компоненты на Scroll-е (autolayout). Вёрстка
Здравствуйте. В сториборде есть вьюха freeform вышиной примерно 700 на ней во...

XCode 4.2
Утро доброе, у меня такая проблема.. не могу найти исполняемый файл в проекте...

XCode 8
Здравствуйте, может кто сталкивался с такой проблемой, Обновил версии Xcode c 7...

о Xcode
как правильно настроить Xcode.Я купил годовой сертификат

9
noname_club
105 / 96 / 12
Регистрация: 01.05.2013
Сообщений: 603
28.05.2014, 16:11 #2
первое правило бойцовского клуба: никому и никогда не говорить о бойцовском клубе.

первое правило IOS верстальщика: всегда выключать AutoLayout.
0
dev.nikor
25 / 26 / 3
Регистрация: 26.07.2010
Сообщений: 297
28.05.2014, 16:13  [ТС] #3
А разве как-то еще можно сделать это автоматом? Ручками не охота
0
noname_club
105 / 96 / 12
Регистрация: 01.05.2013
Сообщений: 603
28.05.2014, 16:14 #4
Вот в чем вопрос, если я удалю первый label, то можно ли с помощью AutoLayout сделать так, чтобы второй label встал на место первого, третий на место второго и так далее?
Для этого есть UITableView c анимацией ячеек
0
dev.nikor
25 / 26 / 3
Регистрация: 26.07.2010
Сообщений: 297
28.05.2014, 16:16  [ТС] #5
Цитата Сообщение от noname_club Посмотреть сообщение
Для этого есть UITableView c анимацией ячеек
Дело в том, что у меня форма. Таблица не совсем для этого вроде
0
noname_club
105 / 96 / 12
Регистрация: 01.05.2013
Сообщений: 603
28.05.2014, 16:29 #6
Хотя возможно я не прав. Судя по туториалу.

http://www.raywenderlich.com/50317/b...n-ios-7-part-1

Может и можно сделать чтобы UILabel сами вверх летали.

Добавлено через 9 минут
если без таблицы и без AutoLayout то только через функцию "обновления состояния экрана"

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-(void) removeLabel: (UIView*) label {
    int offset = 50;
    bool ok = false;
    for (UIView * v in self.view.subviews) {
         if (![v isKindOfClass: [UILabel class]]) continue; 
         if (v == label) {
            ok = true;
            continue;
         }
         if (ok) {
             CGRect r = v.frame;
             r.origin.y -= offset;
             v.frame =  r;
         }
    }
    [label removeFromSuperview];
}
1
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
28.05.2014, 20:31 #7
Цитата Сообщение от noname_club Посмотреть сообщение
первое правило IOS верстальщика: всегда выключать AutoLayout.
Фи. Научитесь пользоваться. Потом говорите.
dev.nikor, c AutoLayout вам даже удалять ничего не нужно. Просто поставить text = nil. Все. Все остальное само подъедет.
noname_club, а бегать по subview циклом это конечно комильфо...
1
dev.nikor
25 / 26 / 3
Регистрация: 26.07.2010
Сообщений: 297
28.05.2014, 20:57  [ТС] #8
zulkis, я AutoLayout еще не пользовался, не расскажете немного поподробнее?
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
28.05.2014, 21:02 #9
Лучший ответ Сообщение было отмечено dev.nikor как решение

Решение

dev.nikor, это набор правил, которые описывают как местоположение и размеры элементов зависят друг от друга.
Описывать смысла особого нет, нужно просто попробовать.
Все достаточно просто. Нужно лишь понимать то, что вам нужно сделать, а потом выставить необходимые "ограничители" в виде constraints. В последние IB в Xcode все достаточно грамотно организовано.
1
noname_club
105 / 96 / 12
Регистрация: 01.05.2013
Сообщений: 603
30.05.2014, 13:18 #10
noname_club, а бегать по subview циклом это конечно комильфо...
пережитки IOS5
0
30.05.2014, 13:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2014, 13:18

Map Xcode
Всем привет! Подскажите, как можно обработать нажатие на метку расположенную...

xcode ViewController
Подскажите, пожалуйста, как из View выполнить ViewController -(void)googleStart...

API и XCode
Подскажите пожалуйста, как работать с api в xcode в частности интересует api...


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

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

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