我在“界面”构建器中放置了一个默认按钮,它有一些默认大小
然后我以编程方式更改了标题,并收到了:
这是我的按钮代码:
NSString *btnGetRegisterCodeTitle = NSLocalizedString(@"Get Registration Code", @"Title on button");
[_btnRegister setTitle:btnGetRegisterCodeTitle forState:UIControlStateNormal];
我需要对按钮做什么,使其自动布局其框架,以便整个(3个单词)标题适合它?
答案 0 :(得分:0)
更改标题后调用sizeToFit
[yourButton sizeToFit];
答案 1 :(得分:0)
这里到底发生了什么,当您更改按钮的标题时,文本变得超出范围。 您可以做的是,以编程方式设置按钮大小以适合其内容/标题。
为此用途:
NSString *btnGetRegisterCodeTitle = NSLocalizedString(@"Get Registration Code", @"Title on button");
[_btnRegister setTitle:btnGetRegisterCodeTitle forState:UIControlStateNormal];
[_btnRegister sizeToFit];
此处sizeToFit方法将自动调整UIButton的大小,使得Title不会合并/重叠.. :)
<强>更新强>
我已经从那里复制了所选答案,以防问题被删除..
查看NSString方法-sizeWithFont:。它会返回一个CGSize,它会告诉您按钮中文本的大小。然后,您可以根据此大小调整按钮的框架,将所需的填充添加到按钮框架的宽度和高度。像这样:
NSString *msg = @"The button label";
UIFont *font = [UIFont systemFontOfSize:17];
CGSize msgSize = [msg sizeWithFont:font];
CGRect frame = button.frame;
frame.size.width = msg.size.width+10;
frame.size.height = msg.size.height+10;
button.frame = frame;
答案 2 :(得分:0)
NSString *btnGetRegisterCodeTitle = NSLocalizedString(@"Get Registration Code", @"Title on button");
CGSize size = [btnGetRegisterCodeTitle sizeWithFont:_btnRegister.titleLabel.font];
[_btnRegister setTitle:btnGetRegisterCodeTitle forState:UIControlStateNormal];
_btnRegister.frame = CGRectMake(_btnRegister.frame.origin.x,
_btnRegister.frame.origin.y,
size.width, size.height);
这个怎么样? 它实际上与上面的答案相同,只是更简单,所以你不会错误地弄错。 (使用按钮标题的字体而不是系统字体)。 如果需要,您仍然可以尝试将10个点添加到宽度和高度,如上一个答案。