在没有移动子视图的情况下改变旋转中心的问题

时间:2011-01-29 09:25:13

标签: iphone objective-c cocoa-touch ios

我在另一个视图(主视图)中有一个UIImageView子视图。两个视图大小相同。并且是对齐的。我想在主视图中旋转子视图,但我不希望旋转中心成为视图的中心。原因是子视图是转动的轮子,轮子不在主视图的中心。

我假设您将子视图的中心更改为车轮的实际中心点,然后旋转。但是更改中心会导致子视图在旋转发生之前在主视图中进行转换。

我想更改子视图中的旋转点而不进行翻译。

有谁知道怎么做?顺便说一句:这将是动画。

2 个答案:

答案 0 :(得分:2)

我不知道是否已有属性,

但一个简单的方法可能是这样的: 为什么不在主视图和UIImage之间使用不可见的视图? 然后你有了mainView,它不可见的子视图,以及你的UIImage隐形视图的子视图。

现在,例如,您可以将隐形100像素的中心向左移动,将UIImage 100像素移动到右侧,这样图像和主视图再次具有共同的中心,但现在您可以旋转围绕未对齐中心的不可见视图(以及图像)

卢卡

答案 1 :(得分:0)

我最终做的是将子视图(滚轮)的源艺术大小调整为更小并以车轮轴为中心。那就没问题了。以前为了原型设计和召集,我保留了我的艺术堆栈中所有层都相同的尺寸,以简化从photoshop的导出。但这不是你想要进入生产的方式。所以在这种情况下,这是更好的长期解决方案。

然而,对于UIImageView有一个通用的解决方案来处理偏移中心点会更好,其中子视图的中心偏离旋转中心。