- (void)addViews{
self.steeringWheelImgV = [[UIImageView alloc]init];
self.steeringWheelImgV.image = [UIImage imageNamed:@"steering_wheel"];
[self.view addSubview:self.steeringWheelImgV];
CGFloat length = SCREEN_H > SCREEN_W? SCREEN_W : SCREEN_H;
self.steeringWheelImgV.width = length * 2 / 3;
self.steeringWheelImgV.height = length * 2 / 3;
self.steeringWheelImgV.leading = 30 ;
self.steeringWheelImgV.bottom = 10;
//添加手势
UIPanGestureRecognizer * panGR = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(steeringWheelPan:)];
[self.steeringWheelImgV addGestureRecognizer:panGR];
self.steeringWheelImgV.userInteractionEnabled = YES;
}
- (void)steeringWheelPan:(UIPanGestureRecognizer*) recognizer
{
CGPoint point = [recognizer locationInView:self.view];
NSLog(@"%@",NSStringFromCGPoint(point));
if (recognizer.state == UIGestureRecognizerStateBegan) {
_beginPoint = point;
}else if (recognizer.state == UIGestureRecognizerStateChanged){
NSLog(@"%@,%@,%@",NSStringFromCGPoint(_beginPoint),NSStringFromCGPoint(point),NSStringFromCGPoint(recognizer.view.center));
double opposideLength_2 =
(point.x - _beginPoint.x) *
(point.x - _beginPoint.x) +
(point.y - _beginPoint.y) *
(point.y - _beginPoint.y);
double beginPointLength_2 =
(_beginPoint.x - recognizer.view.center.x) *
(_beginPoint.x - recognizer.view.center.x) +
(_beginPoint.y - recognizer.view.center.y) *
(_beginPoint.y - recognizer.view.center.y);
double pointLength_2 =
(point.x - recognizer.view.center.x) *
(point.x - recognizer.view.center.x) +
(point.y - recognizer.view.center.y) *
(point.y - recognizer.view.center.y);
NSLog(@"-->%f,%f,%f",opposideLength_2,beginPointLength_2,pointLength_2);
if ((2 * sqrt(pointLength_2) * sqrt(beginPointLength_2)) != 0) {
double cosX = (pointLength_2 + beginPointLength_2 - opposideLength_2)/(2 * sqrt(pointLength_2) * sqrt(beginPointLength_2));//cos(x)=(a^2 + b^2 - x^2)/2*ab
NSLog(@"-->%f",cosX);
if (cosX) {
self.steeringWheelImgV.transform = CGAffineTransformMakeRotation(acos(cosX));
}
}
}else if (recognizer.state == UIGestureRecognizerStateEnded){
self.steeringWheelImgV.transform = CGAffineTransformMakeRotation(0);
}
}