CCC CCC - 5 months ago 15
iOS Question

how do i let text fit to UIButton?

problem:



Button size is enough, however when I change title, the title text cannot fit the button width. Any SDK function can solve this problem, or I need to manually code to solve it?

Please refer to following pictures.

design in the nib file.
enter image description here

initial show in simulator
enter image description here

when I change the title text
enter image description here

tried some ways before




  1. _button.titleLabel.adjustsFontSizeToFitWidth = YES;

    the way will change my font size. I cannot accept the way.

  2. [_button setTitleEdgeInsets:UIEdgeInsetsMake(10.0, 10.0, 0.0,0.0)];

    the way change label's position only, not label size.

  3. [_button.titleLabel sizeToFit];

    result is same with picture(3).

  4. [_button sizeToFit];

    title moved to upper left corner, and the title still the same result.



Just confused, my button size is big enough, why title size is so small?

Answer

Use this.

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

NOTE: Swift code courtesy: @Rachel Harvey