0

我正在开发一个 iPad 应用程序,它支持四个方向。假设在这个应用程序中我有一张图像,它的原点位于横向 (20, 20),如果应用程序旋转为纵向,是否有一个数学公式可以找出其对应的原点?

我可以为原点硬编码所有可能的原点,但这将是一个黑客,我正在寻找一个简单的公式来进行转换。

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 回答