5

アプリケーションをios 6にアップデートしたいのですが、iphone 4とiphone 5の両方でフレームサイズを快適に設定するにはどうすればよいですか?

4

5 に答える 5

4

[画面サイズの計算] を使用して、次の方法を使用するようにビューの高さを調整できます

+(CGFloat)heightOf:(CGFloat)heightValue{
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];

//NSLog(@"applciation Frame height = %f",applicationFrame.size.height);
CGFloat heightRatio = (heightValue/480)*100;

CGFloat height = (applicationFrame.size.height * heightRatio)/100;
return height;

}

それから私はのように使用しています

UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0,[Height heightOf:385], 320, 220)];

など。返信ありがとうございます

于 2012-10-11T04:52:44.507 に答える
3

この状況を処理する方法は複数あります。

1> それらの 1 つは、自動サイズ変更を適切に使用することです。

2>もう 1 つの方法は、新しい自動レイアウト機能を使用することですが、これも iOS 6 でのみサポートされます。

3>iphone 4 と iphone 5 用のビューごとに個別の nib を作成でき、実行しているデバイスに応じて、使用する .xib ファイルを切り替えることができます。

現在の最善の方法は、自動サイズ変更を適切に使用することです。

詳細については、これらを通過できます

1> iOS 4.3~iOS 6.0に対応

2> iPhone4 と iPhone5 の両方の画面解像度をサポートする最良の方法は何ですか? - iOS6のみ自動レイアウト

于 2012-10-10T08:48:59.933 に答える
1

iPhone5およびその他のデバイスの次のコードチェック

#define IS_IPHONE ( [[[UIDevice currentDevice] model] isEqualToString:@"iPhone"] )
#define IS_IPOD   ( [[[UIDevice currentDevice ] model] isEqualToString:@"iPod touch"] )
#define IS_HEIGHT_GTE_568 [[UIScreen mainScreen ] bounds].size.height >= 568.0f
#define IS_IPHONE_5 ( IS_IPHONE && IS_HEIGHT_GTE_568 )

詳細については、質問を参照してください。

于 2012-10-10T07:29:25.567 に答える
0

AutoLayout はうまくいきませんでした。私のアプリには、均等に配置する必要がある要素がいくつかあります。

クイック フィックス ソリューション (お勧めできません) は、画面の高さのチェック時に座標を個別に割り当てることです。(ところで、これは良いチュートリアルです。残念なことに、Apple はまだ IOS 用に実質的なものを何も考え出していません)。

画面に複数の要素がある場合は、それらを個別に再配置する必要があると思います

CGFloat height = [UIscreen mainScreen].bounds.size.height;
if(height==568.00){
self.imageName.frame = CGRectMake(x,y,width,height);
...
}

ウィンドウの中央に表示されるモーダルまたはフローティング画面の場合、これを試すことができます:

self.imgBadgeArea.frame = CGRectMake(self.view.bounds.size.width/2- self.imgBadgeArea.bounds.size.width/2, self.view.bounds.size.height/2 - self.imgBadgeArea.bounds.size.height/2, self.imgBadgeArea.bounds.size.width, self.imgBadgeArea.bounds.size.height);

3.5インチと4インチの両方で機能します。

于 2012-12-13T20:19:07.227 に答える
0

デバイスタイプのリンクを確認するか、ビューフレームがiPhone 4/4sの通常のものよりも大きいかどうかを確認してから、フレームのサイズを変更できます

注:私は2番目の方法を使用していますが、それは仕事です

于 2012-10-10T07:25:12.490 に答える