the*_*ick 38 iphone cocoa-touch uibutton
我有一个内置于Interface Builder的UIButton,它有一个默认标签.在Xcode中,我正在动态更改标签文本:
myButton.titleLabel.text = @"this is the new label";
Run Code Online (Sandbox Code Playgroud)
但是,当文本更新时,新字符串将被剪切为与原始字符串相同的大小,最终看起来像:
this...label
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么会这样吗?
Jus*_*ers 65
您应该使用setTitle:forState:来更改a的标题UIButton
.如果你自己更改标题,按钮没有任何迹象表明它需要调整标签大小 - 你最终必须做这样的事情:
myButton.titleLabel.text = @"this is the new label";
[myButton setNeedsLayout];
Run Code Online (Sandbox Code Playgroud)
但我甚至不确定它会在所有情况下都有效.setTitle:forState:
提供类似的方法,以便您可以为多个状态提供标题,而无需手动更新按钮,以便按钮知道它需要使用新标题进行布局.
Ian*_*Ian 28
尝试使用按钮的setTitle方法(而不是直接在标签上设置标题).它应该强制标题标签的大小调整.
目标C:
[myButton setTitle:@"This is the text" forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
或者在Swift中:
myButton.setTitle("This is the text", for: .normal)
Run Code Online (Sandbox Code Playgroud)
Gui*_*ent 20
另一种解决方案是让UIButton的内部UILabel缩小字体大小,因为UILabels可以这样做:
button.titlelabel.minimumFontSize = 8.0; // or some more adequate size
self.buttonWithLongTitle.titleLabel.adjustsFontSizeToFitWidth = YES;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27118 次 |
最近记录: |