Высота UIButton равна 0, но заголовок все еще отображается

У меня есть UIButton с ограничениями. В интерфейсе контроллера представления я создал IBOutlet для ограничения высоты кнопки. В методе viewDidLoad у меня есть код:

myButtonConstraint.constat = 0;
[self.view layoutIfNeeded];

В viewWillAppear высота кнопки равна 0, но на симуляторе заголовок кнопки все еще отображается. Несмотря на то, что заголовок кнопки виден, кнопка не поддается отображению, она не выполняет никаких действий.

Что происходит?

Ответы

Ответ 1

Вы можете проверить Clip Subviews на построителе интерфейса, или если вы хотите сделать это по коду, попробуйте это:

myButton.clipsToBounds = YES

из документации Apple:

clipsToBounds

Логическое значение, определяющее, ограничиваются ли подзоны границами вида.

@property (неатомные) BOOL clipsToBounds

Обсуждение

Установка этого значения в значение YES приводит к тому, что subviews обрезаются до границ приемника. Если установлено значение НЕТ, субсведы, чьи рамки выходят за пределы видимых границ приемника, не обрезаются. Значение по умолчанию: NO.

Ответ 2

Возможно, вам следует позвонить

[button.layer setMasksToBounds:true];

а затем layoutIfNeeded.

Обс: возможно, требуется каркас кварца.

Ответ 3

Заголовок всегда отображается независимо от высоты кнопки, это UILabel с настройкой собственного размера. Почему вы хотите, чтобы в любом случае была кнопка с высотой 0? Если вы хотите скрыть кнопку, просто установите для свойства Hidden вашей кнопки значение true:

[button setHidden:TRUE];