奇怪的旋转与Box2D和CGAffineTransformMakeRotation

问题描述:

我旋转UIView使用CGAffineTransformMakeRotation旋转值来自一个称为Box2D的二维物理引擎(你可能听说过它)。整合看起来很好,除了旋转会旋转UIView。真的不能解释它,所以这里的展示什么是错的视频:奇怪的旋转与Box2D和CGAffineTransformMakeRotation

http://screencast.com/t/uamth2O7mL

obj是有所谓的“框架”另一个结构和一个叫做旋转浮动一个结构。两者都100%正常工作。

UIView *view = [self.view .subviews objectAtIndex:i]; 

view.transform = CGAffineTransformMakeRotation(obj->rotation); 
[view setFrame:CGRectMake(obj->frame->x, obj->frame->y, obj->frame->width, obj->frame->height)]; 
+0

当你旋转工作,设置** **界的观点(至少在大小),而不是** **框架 – borrrden 2013-03-06 06:39:43

+0

@borrrden完美!让它成为答案,我将它作为答案。 (顺便说一下,你还必须设置Frame以保持物理工作)。 – ManOx 2013-03-06 06:45:24

正如评论(再次感谢@borrrden)中所建议的,您还需要设置UIView的界限。

按我的代码,这是我补充说:

[view setBounds:CGRectMake(obj->frame->x, obj->frame->y, obj->frame->width, obj->frame->height)]; 
+0

哈哈我不认为它会像这样结束,但太棒了! – borrrden 2013-03-06 07:25:22

+0

哈哈是啊,似乎很容易的解决方案。但是,我猜这有时候很简单! – ManOx 2013-03-06 07:38:42