0

私は iPad アプリに取り組んでおり、4 つの向きをサポートしています。このアプリで、横向きの (20, 20) に原点を持つ 1 つの画像があると仮定すると、アプリが縦向きに回転された場合に対応する原点を見つけるための数式はありますか?

原点のすべての可能な原点をハードコーディングできますが、それはハックになります。変換を行うための簡単な式を探しています。

4

2 に答える 2

0

それはあなたが「対応する起源」によって何を意味するかによります。これを意味しているとは思えませんが、ビューとスーパービューのエッジの間で同じスペースを維持したい場合は、を設定できますautoresizingMask。たとえば、次の効果とマスク。

//Same spacing relative to the lower left corner
myImageView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;
//Same spacing relative to the upper left corner
myImageView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;
//Same spacing relative to the lower right corner
myImageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;
//Same spacing relative to the upper right corner
myImageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin;

ビューをすべてのエッジに対して相対的なパーセンテージで維持したい場合は、これで十分です。

    myImageView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

したがって、たとえば、オブジェクトが{20,20}にあり、画面が{320,480}の場合、回転後の{480,320}の新しい原点はおよそ{30,13}になります。

于 2013-02-01T19:02:19.037 に答える
0

画面に対する相対位置をパーセンテージ単位で指定する場合は、次のようになります (疑似コード):

widthRelationship= oldScreenWidth/x; // x = horizontal position
heightRelationship= oldScreenHeight/y; // y = vertical position
newX = newScreenWidth/widthRelationship;
newY = newScreenHeight/heightRelationship;

上記では、画像のサイズは考慮されておらず、実際の原点のみが考慮されています。そのため、パーセンテージ計算が正しくても、期待した視覚的な結果が得られない場合があります。

UIKitを使用している場合、探している結果を達成するためのより良い方法がおそらくあります...

于 2013-02-01T15:46:37.813 に答える