Высота 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];