我试图将一个UIView弧度的物体旋转几弧度,但在应用了变换后,它看起来并没有保持其大小.实现这一目标的正确方法是什么?

下面是我正在做的和得到的(带箭头的蓝色框是我试图旋转的视图——它应该保持与后面的红色框相同的方向):

#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)

double rads = DEGREES_TO_RADIANS(240);
CGAffineTransform transform = CGAffineTransformRotate(CGAffineTransformIdentity, rads);
self.arrowView.transform = transform;

在此处输入图像描述

谢谢

推荐答案

您可能遇到了自动布局问题.旋转视图上可能有约束,将其固定到superview的边上.应用变换时,Autolayout会更新视图的大小,使其仍然适合superview.

您可以try 使用不同的约束(例如,将视图的中心固定到另一个视图的中心,并将宽度和高度固定为常量)或关闭旋转视图的自动布局,或者,如果这些约束不起作用或不适合您的需要,则使用在"自动布局"下布局的容器视图,并将旋转视图添加到其中,而不使用自动布局.

这只能在代码中完成-通过将translatesAutoresizingMasksIntoConstraints设置为NO(自动布局打开)或YES(自动布局关闭),可以使单个视图受制于自动布局或不受制于自动布局.如果从一个视图切换到另一个视图,则需要设置适当的自动调整大小遮罩.

Objective-c相关问答推荐

NSViewController 中的 viewDidLoad?

Objective-C NSMutableArray 在枚举时发生了变异?

如何获取 NSDictionary 中的第一个元素?

等到多个网络请求都执行完毕 - 包括它们的完成块

Objective-C 对象的列表 Select 器

在子类中覆盖init

dispatch_get_global_queue 和 dispatch_queue_create 有什么区别?

为什么我的 UIButton 的内部修饰事件没有被调用?

声明变量id和NSObject *有什么区别?

判断对象是 NSArray 还是 NSDictionary

判断 NSString 是否只是由空格组成

从昨天开始无法将存档上传到应用store

在字符串Objective-c中连接字符串

在我滚动之前,数据不会加载到 UITableView 中

深入了解保留周期

无法在导航栏中心设置titleView,因为返回按钮

zoom UIView 及其所有子项

如何为 iPhone 6/7 自定义边到边图像指定尺寸?

判断核心数据中是否存在对象的最快方法?

Xcode中私有方法的单元测试