У меня есть UIView, содержащий UIButton. UIButton имеет 2 заголовка, установленные для состояний UIControlStateNormal ( "Follow" ) и UIControlStateSelected ( "Следующее" ). Я использую автоматическую компоновку на UIButton, и у нее есть ограничение на определенное расстояние от верхней части супервизора, а другое - на некотором расстоянии от левой части супервизора. Я также использовал "Размер для соответствия содержимому".
Когда я устанавливаю кнопку в выбранном состоянии из кода, заголовок изменяется правильно, но внутренняя ширина UIButton не изменяется, поэтому при изменении с "Follow" на "Follow" текст становится эллипсированным.
self.selected = self.following;
Когда я подхожу к проблеме по-другому и просто меняю текст для UIControlStateNormal, когда кто-то нажимает кнопку, кнопка правильно меняет размер.
NSString *title = (self.following) ? @"Following" : @"Follow"
[self setTitle:title forState:UIControlStateNormal];
Является ли это ошибкой в UIKit? Я бы ожидал, что кнопка изменит свой внутренний размер, чтобы правильно отразить новый размер текста, когда его состояние изменяется, особенно потому, что есть другие вещи, которые я хотел бы изменить, кроме текста для состояний двух кнопок.