0

iPhone 5の画面サイズに合わせてuicontrolsを配置しようとしています。したがって、それに応じて背景画像を設定しました。しかし、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];
4

1 に答える 1

0

2つの選択肢があります。自動レイアウトを使用するか、レイアウト制約を使用してここを読むことができます。

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);
}
于 2013-02-19T09:17:47.657 に答える