[英]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.