CGAffineTransformMakeRotation和UIViewController旋转困境

时间:2010-12-23 18:44:27

标签: iphone objective-c ipad rotation

我遇到了问题。 我有一个UIImageView,我用CGAffineTransformMakeRotation()对它做了一些轮换。 没问题。 但是当我用我的UIViewController进行轮换时(纵向到横向和/或反向)。 我的UIImageView被奇怪地修改了。

其框架变为:CGRectMake(50.f, 50.f, 150.f, 150.f) 到像CGRectMake(50.f, 123.2f, 1004.56f, 1530.456f)

这样的框架

我意识到当我在UIImageView上进行不等于0,90,180或270

的轮换时执行UIViewController旋转时会发生更改

我认为这是因为UIViewController改变了UIImageView的矩形但是如何抑制 那种竞争


不幸的是我的视线在视觉上移动/改变。 那是我的问题,为什么我在这里谈论...... 我谈到了frame属性,因为我注意到它发生了奇怪的变化(随机变化),即使我将其更改为原始的frame。视图似乎并没有“倾听”它。 我希望我很好。 有人提出解决方案吗?

2 个答案:

答案 0 :(得分:2)

如果将视图的transform属性设置为除了单位矩阵之外的任何内容(为了旋转它而必须完成),frame属性将变为未定义且应忽略。这在文档中说明。它只是框架属性出错还是视图以某种意想不到的方式在视觉上移动/改变?

答案 1 :(得分:1)

从您的描述中不清楚,但听起来好像您的UIImageView是您UIViewController拥有的视图的子视图。除非你有理由不以这种方式管理它,否则我建议设置UIImageView struts和spring(即它的autoresizingMask)来表示所需的行为,然后允许父视图重新定位/调整UIImageView的大小。