iOS6 uilabel не выравнивается по центру текста
Я работаю над минимальным ios-приложением ios 5, и я только что столкнулся с странной проблемой с uilabels. или может, я упускаю что-то очевидное. в любом случае проблема в том, что у меня есть uilabel, который должен быть выровнен по центру текста. все отлично работает на ios 5, но на ios 6 он всегда выровнен по левому краю. Я видел, что старый способ выравнивания текста uilabel устарел,и эта настройка должна работать.
self.topComment.textAlignment = NSTextAlignmentCenter;
но даже таким образом он все еще только выровнен по центру на ios 5 и левый выровнен по ios 6. У меня есть код, который изменяет размер шрифта текста в метке, чтобы он соответствовал минимальному и максимальному размеру.
UIFont *font = self.topComment.font;
for(int i = maxFont; i > minFont; i--)
{
// Set the new font size.
font = [font fontWithSize:i];
CGSize constraintSize = CGSizeMake(self.topComment.frame.size.width, 1000);
CGSize labelSize = [topString sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
if(labelSize.height <= self.topComment.frame.size.height ) {
fits = YES;
break;
}
//self.topComment.text = topString;
}
self.topComment.font = font;
self.topComment.text = topString;
Так что это единственное, что я делаю с меткой, но она всегда остается выровненной в ios 6. Важно отметить, что если я упаду в uilabel с текстом и центром выровнять его и не использовать приведенный выше код, то он сосредоточен на ios 5 и 6.
2 ответов
Ok похоже, что включение затянуть интервал между буквами имеет другой результат на ios 5 и 6. Я честно не могу объяснить, почему разница, но просто выключение этого дает желаемое центрирование ярлыков для меня. Просто оставляю это здесь в качестве ответа на случай, если кто-то еще сделает ту же глупую ошибку.
например:
lbl.adjustsLetterSpacingToFitWidth = NO;
обратите внимание, что это устарело в iOS 7.0.