Как обработать неизвестную высоту UILabel и ее влияние на метки внизу в Интерфейсном Разработчике? - PullRequest
1 голос
/ 14 декабря 2010

У меня есть две UILabel в XIB-файле, один поверх другого, содержимое которого загружается из исходного файла JSON в сети.

Учитывая, что я не уверен в количестве строк, которые будут занимать метки, и, следовательно, в высоте, как лучше расположить их относительно друг друга.

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

Могу ли я сделать это в Интерфейсном Разработчике, или это должно быть сделано программно?

Спасибо за вашу помощь ..

Редактировать:

IТеперь есть ответ, хотя он не может быть идеальным.У меня есть две метки, titleLabel выше descLabel.Вот как я этого добился:

titleLabel.text = [data objectForKey:@"title"];
descLabel.text  = [data objectForKey:@"description"];

CGSize s;
s.width = descLabel.frame.size.width;
s.height = 10000;



titleLabel.frame = CGRectMake(titleLabel.frame.origin.x, 
                             titleLabel.frame.origin.y,
                             titleLabel.frame.size.width,
                             [[data objectForKey:@"title"] sizeWithFont:titleLabel.font constrainedToSize: s lineBreakMode:titleLabel.lineBreakMode].height
                             );


descLabel.frame = CGRectMake(descLabel.frame.origin.x, 
                             titleLabel.frame.origin.y + [[data objectForKey:@"title"] sizeWithFont:titleLabel.font constrainedToSize: s lineBreakMode:titleLabel.lineBreakMode].height + 10,
                             descLabel.frame.size.width,
                             [[data objectForKey:@"description"] sizeWithFont:descLabel.font constrainedToSize: s lineBreakMode:descLabel.lineBreakMode].height
                             );

weffew

1 Ответ

0 голосов
/ 14 декабря 2010

Вам придется делать это программно.Метод NSString -sizeWithFont:constrainedToSize:lineBreakMode: (который на самом деле относится к категории a UIKit ) будет особенно полезным для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...