2

こんにちは、iPhone4 用のアプリを開発しました。アプリを iPhone5 に変換したいのですが、settingsView という名前の UIView があり、UIButton をクリックするとポップアップします。iPhone5 の settingsView の高さを調整する方法を知りたかったのです。

 -(IBAction)settingsButtonChanged:(UIButton *)sender
{
    UIImageView *settingsImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"settingsViewImage.png"]];
    settingsImage.frame = CGRectMake(25.0, 40.0, 280.0, 370.0);


    settingsView.frame = CGRectMake(0.0, 20.0, 280.0, 370.0);
    settingsView.backgroundColor = [UIColor clearColor];
    [settingsView addSubview:settingsImage];

}
4

5 に答える 5

4

新しい自動レイアウト システムを使用すると、ビューのレイアウトを自動的に調整して画面サイズを活用する制約を設定できます。たとえば、ビューの上部近くにいくつかの要素、中央にテーブル、下部近くにいくつかのボタンがある場合、次の制約を追加できます。

  • 上部の要素をビューの上部から一定の距離に保つ
  • 上部要素間の間隔を固定する
  • 下部のボタンをビューの下部から一定の距離に保つ
  • 大きな画面ではテーブルが大きくなり、小さな画面では縮小するように、テーブルの高さを調整する

自分で計算して調整を行うこともできますが、自動レイアウト システムの要点は、面倒なことをする必要がないということです。ビューに任せてください。

于 2013-02-14T13:40:11.080 に答える
3

たぶん、2つのストーリーボードを使用したいと思うでしょう。1つはiPhone 3.5 "用で、もう1つはiPhone4"用です。このコードをアプリデリゲートに配置することで、これらのストーリーボードを機能させることができます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
        if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568.0){
            //move to your iphone5 storyboard
            UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iphoneFiveStoryboard" bundle:[NSBundle mainBundle]];
            UIViewController *vc =[storyboard instantiateInitialViewController];

            self.window.rootViewController = vc;
            [self.window makeKeyAndVisible];
        }
        else{
            //move to your iphone4s storyboard
            UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
            UIViewController *vc =[storyboard instantiateInitialViewController];

            self.window.rootViewController = vc;
            [self.window makeKeyAndVisible];
        }}
    // Override point for customization after application launch.
    return YES;
}

これで、[ファイル]->[新規...]->[ファイル]->[ユーザーインターフェイス]->[ストーリーボード]に移動するだけで済みます。

ストーリーボードに「iphoneFiveStoryboard」という名前を付けます...

これで、4インチビューですべてのストーリーボードを作り直すことができます。

ご理解いただければ幸いです。できる限りのことを説明しようとしました...

于 2013-02-14T14:22:37.377 に答える
2

を使用self.view.frame.size.heightして、幅について気付いた320:280の比率に一致するようにこれを何かで割る必要があるかもしれません

-(IBAction)settingsButtonChanged:(UIButton *)sender
{
    UIImageView *settingsImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"settingsViewImage.png"]];
    settingsImage.frame = CGRectMake(25.0, 40.0, 280.0, self.view.frame.size.height);
    settingsView.backgroundColor = [UIColor clearColor];
    [settingsView addSubview:settingsImage];

}
于 2013-02-14T13:29:36.157 に答える
2

コード行以下で実行されているアプリが役立つiPhone 4かどうかを確認する必要があります。-iPhone 5

CGRect screenBounds = [[UIScreen mainScreen] bounds];
        if (screenBounds.size.height == 568)
        {
            // code for 4-inch screen
            //for eg:-
            [self.view setFrame:CGRectMake(0, 0, 320, 568)];
        }
于 2013-02-14T13:32:00.383 に答える