Как мне позволить текст соответствовать 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];
заголовок переместился в верхний левый угол, а заголовок все тот же результат.
Просто смущенный, размер кнопки достаточно большой, почему размер заголовка настолько мал?
Ответы
Ответ 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 просто выберите кнопку, перейдите в меню редактора и выберите "Размер для соответствия содержимому"