Ios6 uilabel не выравнивается по центру текста
Я работаю над ios app 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.
Ответы
Ответ 1
Ok выглядит как включение Tighten Letter Spacing имеет другой результат на ios 5 и 6. Я, честно говоря, не могу объяснить, почему разница, но просто отключение этого дает желаемое центрирование меток для меня. Просто оставив это здесь как ответ, если кто-то другой совершит ту же глупую ошибку.
Например:
lbl.adjustsLetterSpacingToFitWidth = NO;
Обратите внимание, что это устарело в iOS 7.0.
Ответ 2
Для iOS 6 или новее:
label.textAlignment = NSTextAlignmentLeft;