У меня есть UIVIew с UILabel внутри, я хочу, чтобы UILabel и UIView обернули размер текстового содержимого. Итак, я вычисляю размер текста и устанавливаю рамку UIView и рамку UIlabel на новую высоту. UIView полностью изменяется, но UILabel не изменяется. Остается всегда одного размера. Не знаю, почемуИзменение размера UILabel не будет
Вот мой код:
[mylabel setNumberOfLines:0];
CGSize maximumLabelSize = CGSizeMake(mylabel.frame.size.width, 160);
CGSize expectedLabelSize = [text sizeWithFont:mylabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:mylabel.lineBreakMode];
CGRect newFrame = mylabel.frame;
newFrame.size.height = expectedLabelSize.height;
mylabel.frame = newFrame;
mylabel.text = text;
myView.frame = CGRectMake(myView.frame.origin.x,
myView.frame.origin.y,
myView.frame.size.width,
newFrame.size.height);
PD: Я смены кадров в viewDidLayoutSubviews, я должен сделать это где-нибудь еще?
UPDATE: Я использую Autolayout с некоторыми ограничениями. Мне нужен Autolayout, потому что у меня есть панель навигации и приложение на основе вкладок.
Этот код выглядит так, как будто он должен работать нормально. Вы настраиваете рамку метки где-нибудь еще в своем коде, который может перезаписать то, что вы здесь делаете? – Putz1103
Не совсем: S, я использую автомат, возможно, это вызывает проблему. – 6rod9
Я никогда не пользовался автозапуском, поэтому я не помогу. – Putz1103