我如何让文字适合UIButton?

问题:

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

请参考以下图片。

在nib文件中设计。 在此处输入图像描述

最初在模拟器中显示 在此处输入图像描述

当我改变标题文字时 在此处输入图像描述

之前尝试了一些方法

  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];
    标题移到左上角,标题仍然是相同的结果。

只是困惑,我的按钮大小足够大,为什么标题尺寸这么小?

用这个。

Objective-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

对于遇到这个问题的人:

尝试使用setter:

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

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

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

这是Swift版本:

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

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