4

Это код, я использую:CGRectMake не работает для пользовательских кадров в viewDidLayoutSubviews

-(void)viewDidLayoutSubviews{ 
    CGSize screenSize = [[UIScreen mainScreen] bounds].size; 

    if (screenSize.height <= 480.0f) { 
     self.img.frame = CGRectMake(21, 20, 280, 275); 
     self.text.frame = CGRectMake(21, 20, 280, 275); 
     self.decrease.frame= CGRectMake(55, 308, 39, 39); 
     self.add.frame = CGRectMake(55, 308, 39, 39); 
     self.increase.frame =CGRectMake(55, 308, 39, 39); 
    } 
    else{ 
     self.img.frame = CGRectMake(21, 20, 280, 400); 
     self.text.frame = CGRectMake(21, 20, 280, 400); 
     self.decrease.frame= CGRectMake(55, 308, 39, 39); 
     self.add.frame = CGRectMake(55, 308, 39, 39); 
    }  
} 

Я использую тот же код (за пределами viewDidLayoutSubviews), чтобы изменить кадры и она прекрасно работает , Моя проблема в том, что код в viewDidLayoutSubviews не работает. Он не изменяет размеры или позиции кадров при загрузке представления. Какие-либо предложения?

+0

Я не уверен, но вы не можете пересмотреть свое представление после его создания и загрузки. –

+0

Я не понимаю, я использую тот же код для анимации высоты «текстового» UITextView, например. –

+0

Не могли бы вы отредактировать свое сообщение, чтобы показать, как вы выполняете viewDidLayoutSubviews, потому что похоже, что он не вызывается. Вы также должны установить NSLog или printF или точку останова, чтобы убедиться, что это определенно. – PappaSmalls

ответ

1

Не следует ли сначала вызвать [super viewDidLayoutSubviews]?

-(void)viewDidLayoutSubviews{ 
    [super viewDidLayoutSubviews]; 
    CGSize screenSize = [[UIScreen mainScreen] bounds].size; 

    if (screenSize.height <= 480.0f) { 
     self.img.frame = CGRectMake(21, 20, 280, 275); 
     self.text.frame = CGRectMake(21, 20, 280, 275); 
     self.decrease.frame= CGRectMake(55, 308, 39, 39); 
     self.add.frame = CGRectMake(55, 308, 39, 39); 
     self.increase.frame =CGRectMake(55, 308, 39, 39); 
    } 
    else{ 
     self.img.frame = CGRectMake(21, 20, 280, 400); 
     self.text.frame = CGRectMake(21, 20, 280, 400); 
     self.decrease.frame= CGRectMake(55, 308, 39, 39); 
     self.add.frame = CGRectMake(55, 308, 39, 39); 
    }  
} 
+1

Это ничего не делает. Из документов: «По умолчанию реализация этого метода ничего не делает». – walkingbrad

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

  • Нет связанных вопросов^_^