使用偏移旋转UIView

时间:2012-04-28 07:36:43

标签: uiview xamarin.ios uibutton rotation

我正在编写MonoTouch iOS应用程序。

我的主视图上有一组4个UIButton。它们或多或少处于横排。我希望将它们旋转一个角度(在-90和+90度之间)作为一组,最右边的按钮是按钮组的“锚点”。

我无法弄清楚如何做到这一点。

我尝试的一件事是将这些按钮放在UIView中,然后将Transform设置为CGAffineTransform.MakeRotation,但它围绕UIView的中心旋转。我也尝试让这个父UIView比它需要的更宽,以便组中最右边的按钮位于UIView的中心。这适用于旋转,但是父UIView的右半部分的大空白部分覆盖了我的主视图上需要显示的其他按钮。

所以我的问题是如何旋转UIView的UIButtons,其中旋转位于不是UIButton或UIView中心的点附近?

1 个答案:

答案 0 :(得分:3)

您可以更改视图图层的AnchorPoint以及位置,以补偿因设置AnchorPoint而导致的移位。例如,假设您有一个名为ButtonGroup的视图,其中包含按钮。以下代码将围绕视图的左下角旋转90度:

ButtonGroup.Layer.Position = new PointF(ButtonGroup.Frame.Left, ButtonGroup.Frame.Bottom);
ButtonGroup.Layer.AnchorPoint = new PointF (0,1);            
ButtonGroup.Layer.AffineTransform = CGAffineTransform.MakeRotation((float)Math.PI/-2);