Ios UIButton高度为0,但标题仍然可见

Ios UIButton高度为0,但标题仍然可见,ios,objective-c,uibutton,constraints,Ios,Objective C,Uibutton,Constraints,我有一个带有约束的ui按钮。在视图控制器的界面中,我为按钮的高度约束创建了一个IBOutlet。在viewDidLoad方法中,我有以下代码: myButtonConstraint.constat = 0; [self.view layoutIfNeeded]; 在视图中将出现按钮的高度为0,但在模拟器上按钮的标题仍然可见。即使按钮的标题可见,但按钮不可点击,它不执行任何操作 发生了什么?无论按钮的高度如何,标题始终可见,它是一个具有自己大小设置的UILabel。你为什么想要一个高度为0的按钮

我有一个带有约束的
ui按钮
。在视图控制器的界面中,我为按钮的高度约束创建了一个
IBOutlet
。在
viewDidLoad
方法中,我有以下代码:

myButtonConstraint.constat = 0;
[self.view layoutIfNeeded];
在<代码>视图中将出现<代码>按钮的高度为0,但在模拟器上按钮的标题仍然可见。即使按钮的标题可见,但按钮不可点击,它不执行任何操作


发生了什么?

无论按钮的高度如何,标题始终可见,它是一个具有自己大小设置的UILabel。你为什么想要一个高度为0的按钮?如果要隐藏按钮,只需将按钮的隐藏属性设置为true

[button setHidden:TRUE];

您可以在interface builder上检查
剪辑子视图
,或者如果您想通过代码执行此操作,请尝试以下操作:

myButton.clipsToBounds = YES
来自apple文档:

剪贴簿

一个布尔值,用于确定子视图是否限制在视图的边界内

@属性(非原子)布尔剪贴簿

讨论

将此值设置为“是”会将子视图剪裁到接收器的边界。如果设置为“否”,则不会剪裁帧超出接收器可见边界的子视图。默认值为否

也许你应该打电话

[button.layer setMasksToBounds:true];
然后就需要布局了


Obs.:可能需要石英框架。

你救了我的命:)谢谢。对我来说,在将clipsToBounds设置为YES之后,[self.view layoutifneed];self.heightConstraint.constant=0起作用。我也有同样的问题,但在情节提要上设置值没有帮助。我必须在viewDidLoad()上将clipToBounds设置为true,然后它才开始按照我的预期工作。如果将clipToBounds属性设置为YES,则标题将隐藏。此外,如果您只是隐藏按钮,它仍然会占用视图中的空间,只是它是空的。将其高度设置为0绝对有效。我实际上在customButton init()方法中使用了
clipsToBounds=true