2015-11-05 48 views
0

我试着设置PinchGesture的最大和最小限制。 但仍然有变得很小的问题几乎消失或变得很大并且消失。我的代码有什么问题?我想比原始尺寸大两倍,即最大限度,比原始尺寸小0.7倍。PinchGesture和最大,最小限制

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    imageMaxscale = 2; 
    imageMinscale = 0.7; 
    imageNormalscale = 1; 

    UIPinchGestureRecognizer *pinchRecognizerdrawChart = 
     [[UIPinchGestureRecognizer alloc] initWithTarget:self 
               action:@selector(handlePinchRecognizerdrawChart:)]; 
    [pinchRecognizerdrawChart setDelegate:self]; 
    [self.drawChart addGestureRecognizer:pinchRecognizerdrawChart]; 

} 

-(void)handlePinchRecognizerdrawChart:(UIPinchGestureRecognizer*)sender { 
    if(imageNormalscale * [sender scale] > imageMinscale && imageNormalscale * [sender scale] < imageMaxscale){ 
     imageNormalscale = imageNormalscale * [sender scale]; 

     sender.view.transform = CGAffineTransformScale(sender.view.transform, imageNormalscale, imageNormalscale); 

    } 
    sender.scale = 1.0; 
} 

回答

0

我从链接中找到了上述解决方案,并且在他的演示中有效。但在我的实施中不起作用。所以我只是修改为

-(void)handlePinchRecognizerdrawChart:(UIPinchGestureRecognizer*)sender { 
    [self.scrollView bringSubviewToFront:self.drawChart]; 
    if([sender scale] > previouscale && self.drawChart.frame.size.width < screenRect.size.width*1.75){ 
     sender.view.transform = CGAffineTransformScale(sender.view.transform, [sender scale], [sender scale]); 
     previouscale = [sender scale]; 
    }else if([sender scale] < previouscale && self.drawChart.frame.size.width > screenRect.size.width){ 
     sender.view.transform = CGAffineTransformScale(sender.view.transform, [sender scale], [sender scale]); 
     previouscale = [sender scale]; 
    }else 
     previouscale = 1; 

    sender.scale = 1.0; 

} 
相关问题