23

问题:

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

请参考以下图片。

在 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];
    标题移到左上角,标题还是一样的结果。

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

4

5 回答 5

43

用这个。

目标-c

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

斯威夫特 2.0

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

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

斯威夫特 5.0

button.titleLabel?.numberOfLines = 0
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.lineBreakMode = .byWordWrapping
于 2014-05-11T12:19:25.197 回答
13

对于遇到这个问题的人:

尝试使用设置器:

 [self.myButton setTitle:@"Title" forState:UIControlStateNormal];
 [self.myButton sizeToFit];
于 2013-04-17T17:59:08.653 回答
3

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

button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.adjustsLetterSpacingToFitWidth = NO;
button.titleLabel.minimumScaleFactor = 0.5;
于 2014-08-06T13:03:26.600 回答
2

这是斯威夫特版本:

    let button = UIButton()
    button.titleLabel?.numberOfLines = 1
    button.titleLabel?.adjustsFontSizeToFitWidth = true
    button.titleLabel?.lineBreakMode = NSLineBreakMode.ByClipping
于 2016-04-07T09:28:17.163 回答
0

在 IB 中,只需选择按钮,进入编辑器菜单,然后选择“Size To Fit Content”

于 2012-12-02T04:37:43.410 回答