在iOS中旋转视图

时间:2015-10-22 22:24:01

标签: ios objective-c uiview rotation

我认为我有一个UIView。现在我有一个按钮在它的轴上移动UIView。这是我的代码

CGRect frame2 = self.test22.frame;
    frame2.origin.y -= 1.f/[UIScreen mainScreen].scale;  //however many pixels to the right..
    self.test22.frame = frame2;

但我怎么能旋转呢?除了使用x或y轴。我希望能够通过1.f.的旋转来移动UIView。

2 个答案:

答案 0 :(得分:0)

欢迎来到SO。您想要查看UIView方法animateWithDuration和视图的transform属性。您将旋转变换应用于动画块中的视图。请注意,如果更改视图的变换,则不应读取或写入frame属性。如果需要更改大小,请使用center属性更改位置和bounds.size属性。

您的代码可能如下所示:

[UIView animateWithDuration: .25
  animations: ^
  {
    self.test22.transform = CGAffineTransformMakeRotation(M_PI/2);
    CGPoint center = self.test22.center;
    center.y -= 1;
    self.test22.center = center;
  }
];

编辑:

当你说“我希望能够通过1.f.的旋转移动UIView”时,我不知道你的意思。旋转视图不会移动它,它正在旋转它。并且旋转表示为角度,而不是像“1”那样的值。此外,角度是弧度,其中π是180度,π/ 2是90度,2π是全圆旋转(或者没有变化,因为它将旋转置于其原始值。)你必须思考在进行旋转时,以2π的分数表示。或者您可以使用度数并转换为弧度,其中:

degrees = radians * 180/π

此外,移动视图的代码只会在视网膜显示屏上将视图的位置改变半个点,这没有多大意义。

答案 1 :(得分:0)

旋转UIView创建UIView(* view)的对象并对其进行转换

允许将视图旋转90度使用以下代码

CGAffineTransform r_transform = CGAffineTransformIdentity;

r_transform = CGAffineTransformRotate(r_transform,DegreeYoRadians(90));

view.transform = r_transform;