Вращение всегда относительно 0. Если вы поворачиваетесь на x несколько раз, оно будет вращаться только в первый раз.
Если вы хотите поворачивать на 45 каждый раз, когда вызываете этот код, вам понадобится счетчик, и он будет выглядеть так:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
step++;//You are supposed to keep this variable global.
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0];
dialView.transform = CGAffineTransformMakeRotation(45*step* M_PI/180);
[UIView commitAnimations];
}