[英]UIImageView Rotation Matrix is Performing a Skew
我有一个令人费解的问题。 我有一个UIImageView,向它提供一个以弧度为单位的角度来旋转函数。 它工作正常,但是我现在想将角度偏移一个常数。 有趣的是,如果我对M_PI的偏移量变量进行任何除法或乘法运算,则图像视图将倾斜并且不会旋转?
- (void)rotateDialToAngle: (CGFloat)angle {
CGFloat offsetAngle = -0.075f * (2.0f * M_PI);
offsetAngle += angle;
if(offsetAngle >= M_PI * 2)
offsetAngle -= M_PI * 2;
if(offsetAngle < 0)
offsetAngle += (M_PI * 2);
self.clockDialImageView.transform = CGAffineTransformMakeRotation(offsetAngle);
}
上面的代码是预期的状态。 如果我用M_PI替换offSetAngle计算,则它具有将旋转偏移180度的预期行为。 如果我将其替换为M_PI / 2或其他任何内容,则将获得偏斜行为。
if语句用于将度数限制为不大于360的正数。这些按预期方式工作。
注意:这是代码中唯一对图像视图进行任何形式的转换的函数。
注2:尽管视图是倾斜的,但旋转仍然适用。
编辑:代码中的其他转换不能解释问题是如何隔离到一行代码以及对该行中常量的操作。 编辑:寻找其他转换-什么都没有。 CMPopTipView在此控制器外部,不使用。 就像DejalActivityView一样。
还有其他想法吗?
好的,我找到了问题,不确定“为什么”,但是解决方案是将图像视图绘制模式从“缩放到填充”更改为“居中”
我完全不知道为什么这会影响一个常数偏移一个角度?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.