Я прохожу курс Stanford Winter 2015 Swift / iOS и, выполняя задания, сталкиваюсь с поведением, которое хотел бы изменить.

Я использую Autolayout, как описано в видеороликах (отображение вывода на передний и задний края обзора), а приложение Calculator "Display" UILabel подходит с начальным значением 0 и всякий раз, когда значение, используемое для его установки (String), не -nil и non "".

Если он равен нулю или "", весь UILabel исчезает. Что я пытаюсь сделать, так это «очистить» дисплей, когда нет значения для отображения или когда неправильный расчет привел к нулю.

Какие-нибудь советы о том, кто вообще с этим справляется? «Очистить» UILabel без изменения его экранных размеров?


Изменить (спасибо, Роб). UILabel имеет следующие ограничения: 1. Перетащите влево, удерживая клавишу Option, чтобы содержать UIView, выбрав что-то «ведущее» (по дороге на работу еще не могу проверить точную формулировку. 2. Тот же метод, что и (1) за исключением того, что перетаскивание осуществляется к правому краю и выбирается «в конце» 3. Опция, щелчок и перетаскивание вверх до верхней части обзора, выбор «вертикального» меню. 4. То же, что и (3), за исключением того, что перетаскивание выполняется на UIButton под UILabel в графическом интерфейсе.

С этими настройками метка, когда она содержит число, всегда видна и (если ее понимают, окрашивает ее для проверки) растягивается по экрану, даже если текст не отображается.

Макет выглядит правильно в профиле и альбомной ориентации, если содержимое UILabel не пусто. Если пусто, кажется, что он «сжимается, чтобы поместиться» настолько, что кнопки внизу перемещаются вверх по направлению вверх.

Я разрабатываю C ++ с середины 90-х, но у меня мало опыта работы с пользовательским интерфейсом и не более пары недель опыта разработки iOS / Swift.

Благодарность!

9
Varsuuk 28 Окт 2015 в 07:36

2 ответа

Лучший ответ

Вы всегда можете указать UILabel минимальную ширину и минимальную высоту или ограничения, которые удерживают левую и правую стороны метки. Это должно предотвратить изменение размеров метки до нуля.

1
Moriya 28 Окт 2015 в 09:39

В моем случае я сделал это пространство, поэтому "" вместо ""

1
RanLearns 14 Сен 2017 в 20:02