UIImageView不是围绕中心旋转而是在整个地方跳跃

时间:2014-05-14 06:31:34

标签: ios cllocationmanager

我有一个测试指南针VC,带有众所周知的指南针图像(128 x 128),中央坐标为128,160。当我旋转iPhone时,指南针正确移动但是跳到了整个地方。

我尝试插入偏执狂的其他代码以强制它保持在中心范围内,但似乎没有任何区别。

有什么想法吗?

EH

-(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading*)newHeading {
    if (newHeading.headingAccuracy > 0) {    
        self.currentHeading = newHeading;    
        self.trueHeadingLabel.text = [NSString stringWithFormat:@"%d", (int)newHeading.trueHeading];    
        self.magneticHeadingLabel.text = [NSString stringWithFormat:@"%d", (int)newHeading.magneticHeading];    
        float heading = -((newHeading.magneticHeading*M_PI)/180.0f);    

        // Additional code to force image starts here
        self.arrowImage.frame = CGRectMake(128,160,128,128);    
        self.arrowImage.layer.anchorPoint = CGPointMake(0.5,0.5);    
        self.arrowImage.center = CGPointMake(160,160);   
        // Additional code to force image ends here

        self.arrowImage.transform = CGAffineTransformMakeRotation(heading);
    }
}

2 个答案:

答案 0 :(得分:1)

您是否尝试将视图的锚点设置为它的中心?这应该导致围绕中心旋转而不是围绕(0,0)旋转。 你可以尝试一些代码:

[self layer].anchorPoint = CGPointMake(width/2, height/2);

答案 1 :(得分:0)

SORTED但这没有任何意义。没有锚点,没有使用层。我在尺寸检查器中所做的只是将图像的宽度/高度更改为1,1而不是图像的真实尺寸128,128。