iphone - 获取 UIPinchGestureRecognizer 手指位置

标签 iphone ios position cgaffinetransform uipinchgesturerecognizer

我使用 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/

相关文章:

iphone,设置应用程序测试错误_OBJC_CLASS__$_MyClass undefined symbols

android - Google 的 G Suite 应用程序如何共享数据?

ios - Storyboard中两个 View 之间的连续/转换,无需导航 Controller

css - Z-Index 结合位置 : fixed and transitions (CSS)

xcode - xCode 4.6.1-不要创建与位置无关的可执行文件。无法启用

iphone - 获取所有已安装应用程序的图标列表

iphone - 在 iOS 6 中打开 Google map 应用

iphone - 如何将照片和视频加载到Iphone Simulator 4.0

ios - theos - 未知类型名称

css - 页面部分没有分开