У меня есть метод, который дает мне идеальный размер для UITextView с заданной длиной строки (с соответствующим правильным размером шрифта):
- (NSInteger) heightOfLabel:(NSString*) string {
CGSize maximumLabelSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width - 40, FLT_MAX);
CGSize expectedLabelSize = [[NSString stringTrimmedForLeadingAndTrailingWhiteSpacesFromString:string]
sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:maximumLabelSize
lineBreakMode:NSLineBreakByWordWrapping];
return expectedLabelSize.height + 5;
}
На самом деле, он по-прежнему отлично подходит, даже в iOS7. Хотя теперь он приходит с предупреждением, который говорит, что я не должен использовать 'sizeWithFont: contrainedToSize: lineBreakMode'.
Теперь говорится, что я должен использовать -boundingRectWithSize: options: attributes: context:
Этот метод не нов для iOS7, и поэтому я считаю, что это нормально спросить его о переполнении стека, а не переходить на официальный форум разработчиков Apple.
У меня есть три вопроса:
1) Поскольку он устарел, значит ли это, что я должен его обязательно заменить, несмотря на то, что он все еще работает?
2) Я пробовал много разных методов boundingRectWithSize: с различными переменными, но он никогда не бывает совершенным, он всегда кажется немного открытым (как много вопросов о стековом потоке) - есть ли идеальная замена этим не устаревшим методом что делает то же самое, что и мой предыдущий метод с минимальными проблемами?
3) зачем удалять этот метод? Это связано с перекрытием этого другого метода?