Как заменить sizeWithFont после того, как он устарел в iOS 7IOS

Программируем под IOS
Ответить
Anonymous
 Как заменить sizeWithFont после того, как он устарел в iOS 7

Сообщение Anonymous »

У меня есть старый проект, и в его коде используется sizeWithFont. Я получил предупреждение от xcode о том, что он впервые устарел в iOS 7, и попросил заменить его на

(CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context

У меня два вопроса:

I. если я не намерен его менять, что произойдет? Это приведет к сбою моего приложения или просто обойдет устаревший API?

II. Я хотел использовать предложенный API, но меня смущает, что он запрашивает параметр CGSize и возвращает CGRect, в то время как моему старому проекту просто нужно вернуть CGSize. Если у меня уже есть CGSize, зачем мне снова нужен прямоугольник? Пожалуйста, поправьте меня и дайте код, использующий новый API. Большое спасибо!

РЕДАКТИРОВАТЬ:

Я проверил ответ в разделе «Замена устаревшего sizeWithFont: в iOS 7»?

Я сделаю самостоятельный ответ, чтобы сравнить два решения.

Еще один вопрос:

Я заметил, что есть [self setNumberOfLines:1];, следует ли мне сохранить его или можно удалить? На данный момент это ни на что не влияет в моем коде, но я не знаю других ситуаций, например, ситуации с несколькими строками.

Старый устаревший код:

@implementation UILabel (dynamicSize)
-(CGFloat)expectedWidth{
[self setNumberOfLines:1];

CGSize maximumLabelSize = CGSizeMake(9999,self.frame.size.height);

CGSize expectedLabelSize = [[self text] sizeWithFont:[self font]
constrainedToSize:maximumLabelSize
lineBreakMode:[self lineBreakMode]];
return expectedLabelSize.width;
}
@end


Подробнее здесь: https://stackoverflow.com/questions/296 ... d-on-ios-7
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»