Как заставить свойство Autoresize работать в Xcode 4.3? - PullRequest
10 голосов
/ 18 февраля 2012

Я недавно обновился до Xcode 4.3, и он отключил свойство autoshrink моего UILabels. Я перепроверил ящики в IB и пересобрал проект, но он все еще обрезает текст. Какие-либо предложения? Это известная ошибка? Есть ли способ исправить это программно.

Ответы [ 5 ]

19 голосов
/ 22 февраля 2012

Я вижу то же самое. Вы можете обойти это программно (я делаю это в viewDidLoad):

myLabel.adjustsFontSizeToFitWidth = YES;
3 голосов
/ 01 марта 2012

У меня была такая же проблема. Вот исправление, я добавил его к служебному методу, так как в моем проекте более 100 сгибов, и некоторые из них нуждались в исправлении. Прекрасно работает.

Добавить это в 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];
0 голосов
/ 08 марта 2012

Xcode 4.3 не соблюдает настройки Интерфейсного Разработчика для свойства corretsFontSizeToFitWidth.

Это можно исправить, установив значение свойства программно, как предложил JLundell.

myLabel.adjustsFontSizeToFitWidth = YES;

Исправленов 4.3.1

0 голосов
/ 25 февраля 2012

Он просто сделал то же самое со мной.Все автоусадки отключены.Возврат размера шрифта и включение автоматического сжатия фактически не работали.

Мне пришлось исправить это программно, как предложил JLundell.

0 голосов
/ 20 февраля 2012

У меня точно противоположная проблема! Я обновил до Xcode 4.3, и теперь он автоматически сжимает текст в ячейках моего табличного представления, когда я хочу, чтобы они усекали их с помощью эллипсов. Я просмотрел раскадровку и изменил все варианты, которые могут быть связаны с этим, но он отказывается делать то, что я хочу. Так расстраивает.

Edited ...

Попробуйте и заново создайте то, что Xcode делал со мной, поскольку это противоположно тому, что происходит с вами. Выделите ячейку прототипа, которую вы имеете для своего табличного представления в раскадровке, и нажмите на слова «Заголовок» и «Подзаголовок». Вы можете найти свойство AutoShrinking в инспекторе атрибутов, и я полагаю, что вы можете решить эту проблему, сняв этот флажок и перестроив свое приложение. Очень странно, как это может привести к обновлению Xcode. Это также заставило мое приложение вести себя немного странно (то есть неожиданно зависать при работе в симуляторе), но несколько чистых и перестроенных сборок решили эту проблему. Надеюсь, вы сможете это исправить, так как я знаю, что это так же расстраивает меня!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...