UIButton, который изменяет размеры, чтобы соответствовать его titleLabel

У меня есть UIButton, который я добавляю к представлению моего контроллера представления в раскадровке. Я добавляю центрирующие ограничения, чтобы расположить его, и веду пробелы, чтобы ограничить его ширину. В коде я добавляю:

self.button.titleLabel.numberOfLines = 0;
self.button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
[self.button setTitle:@"A real real real real real real real real long long name." forState:UIControlStateNormal];
self.button.backgroundColor = [UIColor redColor];
self.button.titleLabel.backgroundColor = [UIColor blueColor];

Результат показан ниже:

enter image description here

Я хочу, чтобы размер кнопки соответствовал ее содержанию. Как я могу это сделать?

Я пробовал

[self.button sizeToFit];

и пытался установить требуемые приоритеты ограничений на обтекание контента и сопротивление сжатию.

Я также попытался явно установить contentEdgeInsets и titleEdgeInsets в UIEdgeInsetsZero и вызвать invalidateIntrinsicContentSize.

Я также заметил, что, если я помещаю символы новой строки в строку заголовка, кнопка, кажется, изменит размер, чтобы соответствовать ее содержанию.

Я работаю на Xcode 6 и iOS 8 на симуляторе iPhone 6.

30
задан shim 5 March 2018 в 07:10
поделиться