我正在使用图像并旋转它来实现基本的速度表。然而,当我设置初始旋转(在240度,转换为弧度)时,它旋转图像并使其比原本小得多。某些值会使图像完全消失。 (如M_PI_4)
滑块从0到360进行测试。
在viewDidLoad上调用以下代码,并更改滑块值。
-(void) updatePointer
{
double progress = testSlider.value;
progress += pointerStart
CGAffineTransform rotate = CGAffineTransformMakeRotation((progress*M_PI)/180);
[pointerImageView setTransform:rotate];
}
编辑:可能需要注意的是,一旦第一次设置,比例保持不变。因此,如果我将pointerStart设置为240,它会收缩,但移动滑块不会改变比例(并且它会像你怀疑的那样旋转它)在转换中用240替换“进度”也是同样的事情。 (收缩它。)
答案 0 :(得分:2)
我能够为遇到这个问题的任何人解决这个问题。显然,当调用viewDidLoad时,图像没有被完全加载/测量,因此矩阵变换cgAffineTransform确实改变了图像的大小。将更新代码移动到viewDidAppear可以解决问题。
答案 1 :(得分:0)
获取要旋转的视图的变换状态,然后对其应用旋转变换。
CGAffineTransform trans = pointerImageView.transform;
pointerImageView.transform = CGAffineTransformRotate(trans, 240);