Как заставить свойство Autoresize работать в Xcode 4.3?
Я недавно обновился до Xcode 4.3, и он отключил свойство autoshrink моего UILabels. Я перепроверил коробки В IB и перестроил проект, но он все еще отрезает текст. Есть предложения? Это известная ошибка? Есть ли способ исправить это программно.
5 ответов
Я вижу то же самое. Вы можете обойти это программно (я делаю это в viewDidLoad):
myLabel.adjustsFontSizeToFitWidth = YES;
у меня была та же проблема. Вот исправление, я добавил его в метод утилиты, так как у меня есть более 100 xibs в моем проекте, и куча из них нуждалась в исправлении. Отлично работает.
добавить в программу.м:
// 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];
У меня прямо противоположная проблема! Я обновился до Xcode 4.3, и теперь он автоматически сжимает текст в моих ячейках tableview, когда я хочу, чтобы они усекли их с помощью эллипсов. Я просмотрел раскадровку и изменил все варианты, которые могут иметь отношение к этому, но он отказывается делать то, что я хочу. Так неприятно.
редактировать...
попробуйте воссоздать то, что Xcode делал со мной, так как это обратное тому, что происходит с вами. Выделите ячейку прототипа имейте для своего tableview в раскадровке и нажмите на слова" название "и" субтитры". Вы можете найти свойство AutoShrinking в инспекторе атрибутов, и я полагаю, что вы можете исправить свою проблему, сняв этот флажок и перестроив приложение. Очень странно, как обновление Xcode вызовет это. Это также заставило мое приложение вести себя немного странно (т. е. неожиданно сбой во время работы в симуляторе), но несколько чистых и перестроек решили это. Надеюсь, вы сможете это исправить, так как я знаете, это было так же неприятно для меня!
Он просто сделал то же самое для меня. Все сжатия отключены. Возврат размера шрифта и включение Auto shrink на самом деле не работали.
Я должен был исправить это программно, как предложил JLundell.
Xcode 4.3 не соблюдает настройки построителя интерфейса для свойства adjustsFontSizeToFitWidth.
вы можете исправить это, установив значение свойства программно, как предложил JLundell.
myLabel.adjustsFontSizeToFitWidth = YES;
Он был исправлен в 4.3.1