我如何让文字适合UIButton?

时间:2012-12-02 04:34:22

标签: ios uibutton uilabel

问题:

按钮大小就足够了,但是当我更改标题时,标题文本无法适应按钮宽度。任何SDK功能都可以解决这个问题,或者我需要手动编码来解决它?

请参阅以下图片。

在nib文件中进行设计。 enter image description here

在模拟器中初始显示 enter image description here

当我更改标题文字时 enter image description here

之前尝试了一些方法
  1. _button.titleLabel.adjustsFontSizeToFitWidth = YES;
    这种方式会改变我的字体大小。我不能接受这种方式。

  2. [_ button setTitleEdgeInsets:UIEdgeInsetsMake(10.0,10.0,0.0,0.0)];
    改变标签位置的方式,而不是标签尺寸。

  3. [_ button.titleLabel sizeToFit];
    结果与图片(3)相同。

  4. [_ button sizeToFit];
    标题移到左上角,标题仍然是相同的结果。

  5. 只是感到困惑,我的按钮尺寸足够大,为什么标题尺寸太小?

5 个答案:

答案 0 :(得分:40)

使用它。

目标-C

button.titleLabel.numberOfLines = 1;
button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.lineBreakMode = NSLineBreakByClipping; 

Swift 2.0

button.titleLabel?.numberOfLines = 0
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping

注意:Swift代码礼貌:@Rachel Harvey

答案 1 :(得分:12)

对于遇到这个问题的人:

尝试使用setter:

 [self.myButton setTitle:@"Title" forState:UIControlStateNormal];
 [self.myButton sizeToFit];

答案 2 :(得分:3)

还要确保标签不会调整以后的间距,因为这似乎优先于调整字体大小。还要确保minimumScaleFactor< 1。

button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.adjustsLetterSpacingToFitWidth = NO;
button.titleLabel.minimumScaleFactor = 0.5;

答案 3 :(得分:2)

这是Swift版本:

    let button = UIButton()
    button.titleLabel?.numberOfLines = 1
    button.titleLabel?.adjustsFontSizeToFitWidth = true
    button.titleLabel?.lineBreakMode = NSLineBreakMode.ByClipping

答案 4 :(得分:0)

在IB中,只需选择按钮,转到编辑器菜单,然后选择“尺寸适合内容”