繁体   English   中英

在 iOS 中旋转视图

[英]Rotating a view in iOS

我有一个 UIView 在我看来。 现在我有一个按钮在它的 y 轴上移动 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。

欢迎来到 SO。 您想查看 UIView 方法 animateWithDuration 和视图的转换属性。 您将对动画块中的视图应用旋转变换。 请注意,如果您更改视图的转换,则不应读取或写入 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/π

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

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

让我们使用下面的代码将视图旋转 90 度

CGAffineTransform r_transform = CGAffineTransformIdentity;

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

view.transform = r_transform;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM