Cocoa touch 使用双指夹点放大collectionView Xcode
我有一个在scrollView中包含collectionView的应用程序。我使用下面的代码来放大和平移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
-(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;
}