我试图通过调用[SizeToFit]
使UIButton符合其标题文本。不幸的是,我得到了不想要的结果如下。
我认为按钮的大小小于标题大小。因此,标题字符串是缩写。我选择的简单而愚蠢的解决方案是在调用[sizeToFit]
后加上宽度为20pt。
我相信有更好的解决方案比我使用的更好 有人知道吗?
答案 0 :(得分:2)
sizeToFit
不会调整文本大小,但会用于调整视图大小以使其包含其子视图。请改用adjustsFontSizeToFitWidth
来调整字体大小以适合您的按钮宽度。
btnMyButton.titleLabel.adjustsFontSizeToFitWidth = YES;
或者,如果您想调整按钮的大小以适应字体的宽度,您也可以采用以下方式:
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:btnMyButton.titleLabel.font, NSFontAttributeName, nil];
CGFloat buttonWidth = [[[NSAttributedString alloc] initWithString:btnMyButton.titleLabel.text attributes:attributes] size].width;
CGRect frame = btnMyButton.frame;
btnMyButton.frame = CGRectMake(frame.origin.x, frame.origin.y, buttonWidth, frame.size.width);
编辑:
buttonWidth
确实会为您提供您的标题所需的宽度,但如果它仍无效,那么请您验证:
1)您的按钮没有设置任何边距,如果有,那么您可能希望在将buttonWidth
设置为btnMyButton.frame
之前将其添加到buttonWidth += 10; //assuming you have 10pt margins.
变量中:
AutoLayout
2)您的按钮没有通过AutoResizingMask
约束或btnMyButton.frame
缩小。
3)设置{{1}}后,您的按钮未获得字体,大小或标题集。
4)你的按钮有足够的空间来调整大小。