2

私はこことグーグルのいたるところを探していましたが、私にはまだ理解できないこの奇妙な問題があります。以下にアプリの写真があり、背景画像が適用された4つのUIButtonがあります。 ここに画像の説明を入力してください

iPhone 5でサイズ変更/実行すると、一番上のボタンのサイズが非常に奇妙な方法で変更されます。

ここに画像の説明を入力してください

すべてのUIButtonをiPhone5と同じようにサイズ変更するにはどうすればよいですか?出来ますか?別の方法を使用する必要がありますか?

これが重複していないことを本当に望んでいますが、私は完全に困惑しています。UIViewに沿った他の位置でUIButtonを変更すると、別のUIButtonのサイズが変更されたり、奇妙なギャップ間隔が表示されたりします。わかりません。助けてくれてありがとう!

編集:私はXcode4.5でiOS6を使用しています。iPhone4SとiPhone5でテストしています。AutoLayoutをチェックしています。ピンを使用すると(見つかったばかり)、UIButtonにその高さを維持させることができます。

私の質問を明確にするため。UIButtonのサイズを変更して、画面の同じ割合を占めるようにします。単に空のスペースを追加するのではなく、比率を同じにします。それがより明確になることを願っています

4

2 に答える 2

2

使用できる機能の1つは、AutoLayoutと呼ばれます。Xcodeが付属しているため、4インチ画面の調整が簡単になります。ここで良い例を見つけることができます:http ://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2

しかし、私が知る限り、AutoLayoutはiOS 6でのみ機能するため、「まだそれほど有用ではありません」。私はと呼ばれるクラスを使用しておりUIDevice、そのソースはhttps://github.com/erica/uidevice-extensionにあり、プラットフォームタイプがiPhone5であるかどうかを確認します。GUIをセットアップするメソッドでセットアップします。ビューがロードされたとき。私の実装例:

UIImage *backgroundImage;

if ([[UIDevice currentDevice] platformType] == UIDevice5iPhone)
{
    //I have a 4 inch screen present
    myButton.frame = CGRectMake(x, y, w, h); //Set the frame as you would like it to look on the iPhone 5

    backgroundImage = [[UIImage alloc] initWithCGImage:[UIImage imageNamed:@"main_background-568h@2x"].CGImage scale:2.0 orientation:UIImageOrientationUp];
}
else
{
    //I have a 3.5 inch screen present
    myButton.frame = CGRectMake(x, y, w, h); //Set the frame as you would like it to look on the iPhone 3, 3gs, 4, 4s...

    backgroundImage = [[UIImage imageNamed:@"main_background"] retain];
}
self.view.backgroundColor = [UIColor colorWithPatternImage:backgroundImage];
[backgroundImage release];

それが少しクリアされることを願っています。

于 2012-11-16T02:39:11.663 に答える
1

まず、AutoLayoutの使用を無効にする必要があります。このオプションは[ファイルインスペクターを表示する]の下にあります。

于 2012-11-20T11:07:49.437 に答える