Я разрабатываю приложение для iOS, и я использую Storyboard с включенным AutoLayout. Один из моих контроллеров представления имеет набор из 4 кнопок, и в определенных обстоятельствах я бы хотел, чтобы первая исчезла.
Если я использую этот setHidden:TRUE
метод, UIButton становится невидимым, но очевидно, что он занимает место в представлении, и в результате возникает «дыра», которую я не смог заполнить, заставляя оставшуюся UIButton плавать в верхней части основного представления.
В Android я бы просто использовал View.GONE
вместо View.INVISIBLE
, но в iOS я застрял с таким поведением, и я не хочу верить, что единственное решение - вручную (да, я имею в виду программно) переместить оставшиеся элементы вверх.
Я думал, что смогу сделать это, установив какое-то ограничение, чтобы сделать все таким же автоматическим, как в Android, но мне не повезло.
Может ли кто-нибудь указать мне правильное направление, прежде чем я выключу автопрокладку?
Я использую IB, но мне также нравится программировать.
ОБНОВИТЬ:
Установка высоты компонента на 0 тоже не помогает.
Я пробовал примерно так:
UIButton *b;
CGRect frameRect = b.frame;
frameRect.size.height = 0;
b.frame = frameRect;