Я корректирую свои старые приложения на iPhone 4 с помощью симулятора на данный момент, и я могу очень странно поведением с рисунком и размером UILabelWithFont: constrainedToSize: что я сейчас вижу только на симуляторе iPhone 4 ,UILabel неправильные расчеты размера на iPhone
Я пытаюсь показать следующий текст сообщения об ошибке для пользователя: @ «Неверное имя пользователя или пароль» Этот текст находится внутри динамической коробке ошибки, которая построена из трех частей: верхней, центральной и нижней части и, следовательно, I вычислите размер метки, чтобы я мог соответствующим образом изменить центр фонового изображения.
Вот пример кода расчета размера UILabel:
CGRect errorFrame = CGRectMake(40, 0, 240.0, 22.0);
UILabel *errorlabel = [[UILabel alloc] initWithFrame:errorFrame];
errorlabel.adjustsFontSizeToFitWidth = NO;
errorlabel.font = [UIFont fontWithName:@"HelveticaNeue" size:16];
errorlabel.textAlignment = UITextAlignmentLeft;
errorlabel.numberOfLines = 0;
errorlabel.text = @"Incorrect user name or password";
// since only the width is fixed I will use a really large height value
CGSize errorLabelSize = [errorlabel.text sizeWithFont:errorlabel.font constrainedToSize:CGSizeMake(240.0, 4600.0)];
CGRect newFrame = errorlabel.frame;
newFrame.size.height = errorLabelSize.height;
errorlabel.frame = newFrame;
// added so I can easily see the new frame
errorlabel.backgroundColor = [UIColor redColor];
[self.errorView addSubview:errorlabel];
[errorlabel release];
Когда я запускаю код на iPhone 3 тренажере sizeWithFont: constrainedToSize: метод возвращает высоту 1 линии и черпает этот текст ошибки на 1 строка. Когда я запускаю тот же код на симуляторе iPhone 4WithFont: constrainedToSize: возвращает размер (170.0, 42.0), который необходим для двух строк, но сам ярлык нарисован на 1 строке. Как будто код sizeWithFont не использует те же логики кода рендеринга.
Поскольку изменение текста ошибки не является опцией :) любая идея, как обойти эту проблему или решить ее?
Заранее спасибо
не появляется, чтобы решить для меня все равно – glogic