CGRectMake does not work for custom frames in viewDidLayoutSubviews

This is the code I'm using:

-(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); } } 

I use the same code (outside viewDidLayoutSubviews) to change frames, and it works great. My problem is that the code in viewDidLayoutSubviews is not working. It does not resize or position frames when loading a view. Any suggestions?

+4
source share
1 answer

Shouldn't [super viewDidLayoutSubviews] be called first?

 -(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
source

All Articles