我有以下代码...
UILabel *buttonLabel = [[UILabel alloc] initWithFrame:targetButton.bounds];
buttonLabel.text = @"Long text string";
[targetButton addSubview:buttonLabel];
[targetButton bringSubviewToFront:buttonLabel];我的想法是我可以让按钮有多行文本,但文本总是被UIButton的backgroundImage所遮挡。显示按钮的子视图的日志记录调用表明UILabel已被添加,但文本本身不可见。这是UIButton中的一个bug,还是我做错了什么?
发布于 2015-09-01 04:21:45
将lineBreakMode设置为NSLineBreakByWordWrapping (在IB或code中)会使按钮标签多行,但不会影响按钮的框架。
如果按钮有动态标题,有一个诀窍:将隐藏的UILabel与相同的字体,并将其高度与按钮的高度与布局;当设置文本按钮和标签和自动布局将使所有的工作。
便笺
单行按钮的固有尺寸高度大于标签的高度,因此为了防止标签的高度收缩,它的垂直内容拥抱优先级必须大于按钮的垂直内容压缩阻力。
https://stackoverflow.com/questions/604632
复制相似问题