2013-09-21 3 views
0

Я попытался изменить UILabel.frame с кнопкой, и она работает правильно:Как изменить размер UILabel в viewDidLoad

- (IBAction)changeSize:(id)sender 
    { 
     CGRect rec = self.labelHello.frame; 
     rec = CGRectMake(20, 20, 280, 300); 
     self.labelHello.frame = rec; 
    } 

Но если я использую тот же код в viewDidLoad не имеет никакого эффекта.

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 

     CGRect rec = self.labelHello.frame; 
     rec = CGRectMake(20, 20, 280, 300); 
     self.labelHello.frame = rec; 
    } 

Кто-то может мне помочь?

Thank в Стефано

+0

попробовать в viewWillAppear: метод. – Franck

+1

@Stefano Как у вас есть ярлык в вашем представлении XIB или программированием? Если через XIB вам нужно сделать это, когда ваше представление загрузится и появится в 'viewWillAppear', или если через программирование просто напишите этот код ниже кода распределения для метки. –

+0

К сожалению, это не работает с viewDidAppear, но вместо этого работает правильно с viewDidAppear. Спасибо, много! Stefano – Stefano

ответ

0

Попробуйте этот код в viewwillAppear..it будет работать ...

+0

К сожалению, это не работает с viewDidAppear, но вместо этого корректно работает с viewDidAppear. Большое спасибо! – Stefano

+0

, тогда увеличьте мои точки приятеля. –

1

вы можете обмануть с dispatch_async:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     CGRect rec = self.labelHello.frame; 
     rec = CGRectMake(20, 20, 280, 300); 
     self.labelHello.frame = rec; 
    }); 
} 
+0

С диспетчером_асинк работает правильно !!! Спасибо, много! – Stefano

Смежные вопросы