Недавно я обновился до Xcode 4.3 и отключил свойство автозапуска UILabels. Я перепроверял коробки в IB и перестраивал проект, но он все еще отключает текст. Какие-либо предложения? Это известная ошибка? Есть ли способ исправить это программно.
Как заставить свойство Autoresize работать в Xcode 4.3?
Ответ 1
Я вижу то же самое. Вы можете обойти это программно (я делаю это в viewDidLoad):
myLabel.adjustsFontSizeToFitWidth = YES;
Ответ 2
У меня была та же проблема. Здесь исправление, я добавил его к утилитарному методу, так как у меня в моем проекте более 100 xibs, и куча их необходима для исправления. Отлично работает.
Добавьте это в Utility.m:
// UIView+viewRecursion.h
@interface UIView (viewRecursion)
- (NSMutableArray*) allSubViews;
@end
// UIView+viewRecursion.m
@implementation UIView (viewRecursion)
- (NSMutableArray*)allSubViews
{
NSMutableArray *arr=[[NSMutableArray alloc] init];
[arr addObject:self];
for (UIView *subview in self.subviews)
{
[arr addObjectsFromArray:(NSArray*)[subview allSubViews]];
}
return arr;
}
@end
И это:
+(void)fixLabels:(UIView *)theView{
for(UIView *v in [theView allSubViews])
{
if([v isKindOfClass:[UILabel class]])
{
if( !((UILabel*)v).adjustsFontSizeToFitWidth ){
((UILabel*)v).adjustsFontSizeToFitWidth=YES;
// NSLog(@"fixed %@", theView);
}
}
}
}
И затем вызовите fixLabels из viewDidLoad для любого представления, которое имеет UILabels, которые не сжимаются автоматически:
[Utility fixLabels:self.view];
Ответ 3
У меня есть совершенно противоположная проблема! Я обновился до Xcode 4.3, и теперь он автоматически сжимает текст в ячейках tableview, когда я хочу, чтобы они усекали их с помощью эллипсов. Я прошел через раскадровку и изменил все варианты, которые могут иметь отношение к этому, но он отказывается делать то, что я хочу. Так расстраивает.
Под редакцией...
Попробуйте и заново создайте то, что Xcode делал со мной, поскольку оно обратное тому, что происходит с вами. Выделите ячейку прототипа для вашего стола в раскадровке и нажмите слова "Название" и "Субтитры". Вы можете найти свойство AutoShinking внутри инспектора атрибутов, и я полагаю, что вы можете исправить свою проблему, сняв флажок и перестроя свое приложение. Очень странно, как это может привести к обновлению Xcode. Это также привело к тому, что мое приложение немного странно (то есть неожиданно сбой при работе в симуляторе), но несколько чистых и перестроек решили это. Надеюсь, вы сможете это исправить, поскольку я знаю, что это было так же неприятно для меня!
Ответ 4
Он просто сделал то же самое для меня. Все автозапуска отключены. Отбрасывание размера шрифта и автоматическое сглаживание не работало.
Мне пришлось исправить это программно, как предположил JLundell.
Ответ 5
Xcode 4.3 не выполняет настройки интерфейса Builder для настройки свойстваFontSizeToFitWidth.
Вы можете исправить это, установив значение свойства программно, как предположил JLundell.
myLabel.adjustsFontSizeToFitWidth = YES;
Он был исправлен в 4.3.1