Как мне позволить текст соответствовать UIButton? - программирование
Подтвердить что ты не робот

Как мне позволить текст соответствовать UIButton?

Проблема:

Размер кнопки достаточно, однако, когда я изменяю заголовок, текст заголовка не может соответствовать ширине кнопки. Любая SDK-функция может решить эту проблему, или мне нужно вручную ее решить?

Пожалуйста, обратитесь к следующим рисункам.

в файле nib. enter image description here

начальное шоу в симуляторе enter image description here

когда я изменяю текст заголовка enter image description here

попробовал несколько способов до

  • _button.titleLabel.adjustsFontSizeToFitWidth = YES;
    путь изменит мой размер шрифта. Я не могу согласиться с этим.

  • [_ button setTitleEdgeInsets: UIEdgeInsetsMake (10.0, 10.0, 0.0.0.0)];
    как изменить положение метки, а не размер метки.

  • [_ button.titleLabel sizeToFit];
    результат аналогичен изображению (3).

  • [_ button sizeToFit];
    заголовок переместился в верхний левый угол, а заголовок все тот же результат.

Просто смущенный, размер кнопки достаточно большой, почему размер заголовка настолько мал?

4b9b3361

Ответ 1

Используйте это.

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

ПРИМЕЧАНИЕ. Быстрая передача кода: @Rachel Harvey

Ответ 2

Для людей, которые сталкиваются с этим вопросом:

Попробуйте использовать установщик:

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

Ответ 3

Удостоверьтесь также, что метка не настраивает более поздние интервалы, поскольку это, кажется, имеет приоритет над настройкой размера шрифта. Кроме того, убедитесь, что значение MinimumScaleFactor < 1.

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

Ответ 4

Вот версия Swift:

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

Ответ 5

В IB просто выберите кнопку, перейдите в меню редактора и выберите "Размер для соответствия содержимому"