有没有人知道如何让这个代码停止旋转旋转超过xyz度,例如停止旋转340度而不是完全旋转360度所以你不能一直转动它?我正在尝试制作一个可转动的旋钮。它有效,但目前它没有被钳制,所以有人可以继续向前和向后转动它。我想阻止它这样做,所以有一个最小值和最大值。
- (void)rotating:(KTOneFingerRotationGestureRecognizer *)recognizer {
[self doRotation:recognizer.rotation];
[recognizer setRotation:0];
}
- (void)doRotation:(float)rot {
CGFloat theAngle = atan2(knob.transform.b, knob.transform.a);
float temp_var = RADIANS_TO_DEGREES(theAngle);
if(temp_var < 0) temp_var = 360 - fabs(temp_var);
float percent = (temp_var / 315) * 100;
float val = ((float)(percent))/100;
knob.transform = CGAffineTransformRotate([knob transform], rot);
if(percent < 100 && percent > 0) {
display.text = [[NSString alloc] initWithFormat:@"%.f", percent];
}
}
答案 0 :(得分:0)
如果旋转大于340°,您只想停止旋转?只需检查temp_var
是否大于340,然后返回该方法。您还应考虑将其重命名为degrees
或更明显的内容。
if(temp_var < 0) temp_var = 360 - fabs(temp_var);
// add this next line:
if (temp_var > 340) { return; }
float percent = (temp_var / 315) * 100;
答案 1 :(得分:0)