如何根据iPhone 5屏幕定位uicontrols

时间:2013-02-19 06:57:42

标签: iphone ios uicontrol

我正在尝试根据iphone 5屏幕尺寸定位uicontrol。因此我已相应地设置了背景图像。但我不知道如何定位uicontrols。

请告诉我

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];

1 个答案:

答案 0 :(得分:0)

您有2个选择,您可以使用Autolayout并在此处阅读布局约束:

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

您需要根据屏幕高度为每个版本更改view.frame.origin或view.frame.center。

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