Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 使用双指夹点放大collectionView Xcode_Cocoa Touch_Uiscrollview_Xcode6_Uicollectionview - Fatal编程技术网

Cocoa touch 使用双指夹点放大collectionView Xcode

Cocoa touch 使用双指夹点放大collectionView Xcode,cocoa-touch,uiscrollview,xcode6,uicollectionview,Cocoa Touch,Uiscrollview,Xcode6,Uicollectionview,我有一个在scrollView中包含collectionView的应用程序。我使用下面的代码来放大和平移 -(void) viewDidLoad { [super viewDidLoad]; twoFingerPinchA = [[UIPinchGestureRecognizer alloc] initWithTarget:self

我有一个在scrollView中包含collectionView的应用程序。我使用下面的代码来放大和平移

-(void) viewDidLoad {
    [super viewDidLoad];

    twoFingerPinchA = [[UIPinchGestureRecognizer alloc]
                                                initWithTarget:self
                                                action:@selector(twoFingerPinch:)]
    ;
    [self.view addGestureRecognizer:(twoFingerPinchA)];
}

-(void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer{

  CGAffineTransform transform = CGAffineTransformMakeScale(twoFingerPinchA.scale, twoFingerPinchA.scale);

    if (twoFingerPinchA.scale < 1) {
        twoFingerPinchA.scale = 1;
    }

    if (twoFingerPinchA.scale >2) {
        twoFingerPinchA.scale = 2;
    }
    self.scrolling.transform = transform;

}
所以我想出来了

首先我使用了这个代码

-(void) viewWillAppear:(BOOL)animated{
    NSString *pinchString = @"1.0";
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:pinchString forKey:@"pinchValue"];
  }
//这是为了确保pinchValue键在首次安装应用程序时具有值

然后我把这个

switch ([twoFingerPinchA state]) {
        case UIGestureRecognizerStatePossible:
        {
        }
            break;
        case UIGestureRecognizerStateBegan:
        {
            NSString *inPinch = [[NSUserDefaults standardUserDefaults] objectForKey:@"pinchValue"];
            float Pinch = [inPinch floatValue];
           twoFingerPinchA.scale = Pinch;
         }
            break;
        case UIGestureRecognizerStateChanged:
        {
         }
            break;
        case UIGestureRecognizerStateEnded:
        {
            NSString *pinchString = [NSString  stringWithFormat:@"%f",twoFingerPinchA.scale];
            NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
            [defaults setObject:pinchString forKey:@"pinchValue"];
          }
            break;
        case UIGestureRecognizerStateCancelled:
        {
        }
            break;
        case UIGestureRecognizerStateFailed:
        {
        }
            break;
    }
在我的 -(void)twoFingerPinch:(UIPinchGestureRecognitor*)识别器{}

当挤压结束时,它将twoFingerPinchA.scale的值存储在usersDefaults中

再次开始时,将twoFingerPinchA.scales设置为该存储值。在此基础上,根据该值进行上下/进出调整

效果很好

switch ([twoFingerPinchA state]) {
        case UIGestureRecognizerStatePossible:
        {
        }
            break;
        case UIGestureRecognizerStateBegan:
        {
            NSString *inPinch = [[NSUserDefaults standardUserDefaults] objectForKey:@"pinchValue"];
            float Pinch = [inPinch floatValue];
           twoFingerPinchA.scale = Pinch;
         }
            break;
        case UIGestureRecognizerStateChanged:
        {
         }
            break;
        case UIGestureRecognizerStateEnded:
        {
            NSString *pinchString = [NSString  stringWithFormat:@"%f",twoFingerPinchA.scale];
            NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
            [defaults setObject:pinchString forKey:@"pinchValue"];
          }
            break;
        case UIGestureRecognizerStateCancelled:
        {
        }
            break;
        case UIGestureRecognizerStateFailed:
        {
        }
            break;
    }