Есть ли способ получить длину субтитра ячейки (подробныйТекстовая метка)? - PullRequest
0 голосов
/ 22 октября 2011

, как упоминалось в вопросе, я хотел бы получить длину субтитра (topic.context) и использовать его для принятия определенных решений (см. Мой фрагмент кода ниже)

cell.detailTextLabel.text = topic.context;
NSString *fanLabelText = [NSString stringWithFormat:@"%i fans",topic.num_fans];

if (topic.context && ![topic.context isEqual:[NSNull null]] && topic.context.length > 46)
{
    thisFanLabel.frame = CGRectMake(320 - 150, -10, 100, 44);
}
else
{
    thisFanLabel.frame = CGRectMake(320 - 150, 0, 100, 44);
}

По сути, я хочу знать, когда субтитры достигнут определенной длины, чтобы я мог отрегулировать метку вентилятора так, чтобы она смещалась вверх (как показано на диаграмме ниже). В настоящее время лейбл фанатов перекрывается субтитрами, я хочу иметь возможность сместить лейбл вверх, когда это произойдет.

enter image description here

Так какой же самый лучший способ получить точную длину субтитров?

Ответы [ 2 ]

1 голос
/ 22 октября 2011

Вы можете проверить размер строки с определенным шрифтом, используя следующие строки:

CGSize maxSize = CGSizeMake(9999,9999);

UILabel *myLabel = cell.detailTextLabel;
CGSize sizeOfString = [myLabel.text sizeWithFont:myLabel.font 
                        constrainedToSize:maxSize 
                        lineBreakMode:myLabel.lineBreakMode]; 

В "sizeOfString" у вас теперь должен быть размер вашей detailLabel.

0 голосов
/ 22 октября 2011

См. NSString * -sizeWithFont: и родственные методы.

...