我想使用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度;和中间。
答案 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,而是根据滑块的最大值得到“百分比”。