0

I am trying to position the uicontrols according to the iphone 5 screen size.hence i have set the background image accordingly. But i am not sure how to position the uicontrols.

Please let me know

UIImage* myImage;
  CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
  if ([UIScreen mainScreen].scale == 2.f && screenHeight == 568.0f) {
    myImage = [UIImage imageNamed:@"bg-for5-568h.png"];
  } else {
    myImage = [UIImage imageNamed:@"bg.png"];
  }

  self.view.backgroundColor = [UIColor colorWithPatternImage:myImage];
  self.view.autoresizesSubviews = YES;
  self.navigationController.navigationBarHidden = YES;

  // Create an UIButton
  UIButton *aCalculateBtn = [UIButton buttonWithType: UIButtonTypeCustom]; 
  UIImage *imgBack = [[UIImage imageNamed:@"calc.png"]
  stretchableImageWithLeftCapWidth:22
  topCapHeight:0];

  [aCalculateBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  aCalculateBtn.titleLabel.font = [UIFont boldSystemFontOfSize:14.0];
  aCalculateBtn.titleLabel.shadowOffset = CGSizeMake(0, -1);
  [aCalculateBtn setBackgroundImage:imgBack forState:UIControlStateNormal];  
  [aCalculateBtn addTarget:self action:@selector(showQuestions) forControlEvents:UIControlEventTouchUpInside]; 
  aCalculateBtn.frame = CGRectMake(150,160, 150, 38);  
  aCalculateBtn.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
  aCalculateBtn.bounds = CGRectInset(aCalculateBtn.bounds, -3, 1);
  [self.view addSubview:aCalculateBtn];

  // Create an UIButton
  UIButton *anAboutBtn = [UIButton buttonWithType: UIButtonTypeCustom]; 
  UIImage *imgAbout = [[UIImage imageNamed:@"about-us.png"]stretchableImageWithLeftCapWidth:22 topCapHeight:0];
  [anAboutBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  anAboutBtn.titleLabel.font = [UIFont boldSystemFontOfSize:14.0];
  anAboutBtn.titleLabel.shadowOffset = CGSizeMake(0, -1);
  [anAboutBtn setBackgroundImage:imgAbout forState:UIControlStateNormal];  
  [anAboutBtn addTarget:self action:@selector(showAbout) 
   forControlEvents:UIControlEventTouchUpInside]; 
  anAboutBtn.frame = CGRectMake(150,190, 150, 38);  
  anAboutBtn.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
  anAboutBtn.bounds = CGRectInset(anAboutBtn.bounds, -3, 1);
  [self.view addSubview:anAboutBtn];
C1pher
  • 1,933
  • 6
  • 33
  • 52
user198725878
  • 6,266
  • 18
  • 77
  • 135
  • What is it that you want to accomplish? We can't read your mind. Take a look at [this question](http://stackoverflow.com/questions/12395200/how-to-develop-or-migrate-apps-for-iphone-5-screen-resolution/) for some tips and try to make your question more specific. – Filip Radelic Feb 19 '13 at 07:55

1 Answers1

0

You have 2 choices, you can either use Autolayout and with Layout constraints read here:

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/AutolayoutPG/Articles/adoption.html

You need to change either view.frame.origin or view.frame.center for each version based on screen height like this.

if([ [ UIScreen mainScreen ] bounds ].size.height == 568 )
{
    self.view.frame = CGRectMake(0,0,320,568);
    self.view.center = CGPointMake(284);

}
else
{
     self.view.frame = CGRectMake(0,0,320,480);
     self.view.center = CGPointMake(160,240);
}
Dev2rights
  • 3,469
  • 3
  • 25
  • 42