В настоящее время у меня есть метка, которая корректно измеряется с использованием [aString sizeWithFont: constrainedToSize: lineBreakMode:], но я ввел вращение в мое устройство и с гибкой шириной и высотой это приводит к тому, что моя UILabel расширяет ширину (потому устанавливается относительно основного вида), но не сжимается по высоте, чтобы компенсировать дополнительное пространство.
В другом вопросе, который я задал, мне сказали использовать sizeToFit
и / или sizeThatFits:
, однако я не могу найти в Интернете никакого полезного ресурса, который рассказывал бы мне, как использовать это должным образом, и испытания, которые я провел, привели к иррациональное поведение.
В двух словах, скажем, у меня есть такая структура:
UIView *innerView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, self.view.frame.size.width-20, 0)];
[innerView setAutoresizingMask:*flexible width and height*]
[innerView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:innerView];
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, innerView.frame.size.width-20, 0)];
[myLabel setAutoresizingMask:*flexible width and height*]
[myLabel setBackgroundColor:[UIColor blueColor]];
[myLabel setNumberOfLines:0];
[myLabel setLineBreakMode:UILineBreakModeWordWrap];
[innerView addSubview:myLabel];
Это упрощенная версия (также из-за отказа от ответственности, это не мой действительный код, я понимаю, что эти элементы утекут и все остальное ... это всего лишь пример, чтобы вы могли видеть структуру).
По сути, у меня есть эти два элемента. Теперь при вращении они будут растягиваться, чтобы соответствовать новому размеру представления. Что мне нужно, это способ увеличить или уменьшить высоту для динамического размещения содержимого. [aString sizeWithFont...]
только статический. Итак, как бы я использовал sizeToFit
или sizeThatFits
, чтобы сделать это динамическим?
Спасибо.
Tom