我使用 UIGestureRecognizer 完美地转换 View 及其工作,但现在我想使用它来独立转换 View 的宽度和高度。我想到解决这个问题的唯一方法是获取两个手指的位置并制作一个 if 子句来识别用户是否试图增加宽度或高度,但为此我需要让每个手指的位置都参与捏合手势.但是我找不到任何方法来做到这一点我想知道这是否可行,或者是否有另一种方法可以实现这一目标。
- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer {
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, 1);//To transform height insted of width just swap positions of the second and third parameter.
NSLog(@"%f",recognizer.scale);
recognizer.scale = 1;
}
最佳答案
如果有人需要这样做,得到答案,有一种称为触摸位置的方法。使用此方法,您可以获得每个触摸的 x 和 y 位置。但是当手势识别器状态开始时调用它,因为如果你在状态改变时这样做它会崩溃。将这些值保存在一些变量中,你就可以开始了。希望对有兴趣的人有所帮助。
- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer {
if(recognizer.state == UIGestureRecognizerStateBegan){
NSLog(@"pos : 0%f, %f",[recognizer locationOfTouch:0 inView:self.view].x,[recognizer locationOfTouch:0 inView:self.view].y);
NSLog(@"pos 1: %f, %f",[recognizer locationOfTouch:1 inView:self.view].x,[recognizer locationOfTouch:1 inView:self.view].y);
}
if(recognizer.state == UIGestureRecognizerStateChanged){
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, 1);
//NSLog(@"%f",recognizer.scale);
recognizer.scale = 1;
}
if(recognizer.state == UIGestureRecognizerStateEnded){
}
关于iphone - 获取 UIPinchGestureRecognizer 手指位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657553/