0

以下に示すように、幅が 768 ピクセルの背景画像があります。そして、正確な位置に配置する必要がある小さな画像がいくつかあります。たとえば、青いものは 40、120 に配置する必要があります。

ここに画像の説明を入力

ユーザーがデバイスの向きを横に変更すると、問題が発生します。背景画像は中央に配置されます ([エディター] > [整列] > [コンテナの水平方向の中央])。そのため、背景画像は中央に横に配置されます。システムは、青色の画像の x 座標を、背景画像の端から 40 ピクセルではなく、40 に自動的に設定します。だから小さな男は見当違いです。(予想される位置は白で表示されます。)

ここに画像の説明を入力

では、背景画像の位置に関連して小さな人を配置するにはどうすればよいでしょうか? 背景画像とそれぞれの小さな男を選択し、[エディター] > [ピン] > [水平方向の間隔] を選択するなど、多くのことを行いました。何も機能しません。この場合、デバイスの向きに関係なく相対的な位置を保持することは可能ですか? それとも、「自動レイアウト」なしで行くべきですか? 2 番目に良い選択は、背景画像を配置しないことです。ただし、ユーザーが向きを横に変更すると、アプリの見栄えが悪くなります。

4

2 に答える 2

1

小さなものを背景画像に埋め込みます(すべてコンテナUIViewに埋め込みます!)

座標は常に外部コンテナを基準にしています

于 2012-11-30T15:21:09.377 に答える
0

以下のようにUIScrollViewのグループに入れてまとめて移動することで何とかなりました。

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration {
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
    uiscrollview1.Frame=CGRectMake(uiscrollview1.frame.origin.x, uiscrollview1.frame.origin.y, uiscrollview1.frame.size.width, uiscrollview1.frame.size.height);
}
else
{
    uiscrollview1.Frame=CGRectMake(uiscrollview1.frame.origin.x+128, uiscrollview1.frame.origin.y, uiscrollview1.frame.size.width, uiscrollview1.frame.size.height);
}
}

それが今のところ最高の結果です。

于 2012-11-30T16:27:43.160 に答える