如何旋转UIView修复+/-角度?

时间:2014-04-30 17:04:58

标签: ios uiview rotation

我想使用UISlider从0到180度(pi)旋转+/-角度。 我的问题是矩形在0或180之前旋转 我需要的是基本上用角度映射到相对UISlider按钮位置。

这是代码,UIView.layer的锚点位于一端(如表盘中所示):

- (IBAction)sliderAction:(UISlider *)sender {
    static float datum = 0;
    if (sender.value > 0 && sender.value < 10) {
        float myValue = 0;
        if (datum < sender.value) {
            myValue = +0.1;
        } else {
            myValue = -0.1;
        }
        _gageStickView.transform = CGAffineTransformRotate(_gageStickView.transform, myValue);
        datum = sender.value;
    }

这会旋转它,但我没有足够的控制权。

问题:如何使用UIView的角度映射UISlider的位置?
也就是说,左滑块在0度,中间边缘在90度,右滑块在180度;和中间。

1 个答案:

答案 0 :(得分:1)

就像@Larme所说,你需要将度数转换为弧度。

- (IBAction)sliderValueChanged:(UISlider *)sender {

    CGFloat degrees = (sender.value / sender.maximumValue) * 180;
    CGFloat radians = degrees * M_PI / 180;

    self.label.transform  = CGAffineTransformMakeRotation(radians);    
}

此代码不是硬连线到值10,而是根据滑块的最大值得到“百分比”。