放大和缩小UIView

luc*_*590 13 xcode zoom zooming ios

使用简单的方法按钮放大和缩小UIView的最佳方法是什么.(EI

(IBAction)zoomin:(int)distance
{
method here
}
(IBAction)zoomout:(int)distance
{
and here
}
Run Code Online (Sandbox Code Playgroud)

Kri*_*Dev 27

它可以使用两个手指手势识别器完成:你必须写下: -

-(void)viewDidLoad
{
UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] 
                                           initWithTarget:self 
                                           action:@selector(twoFingerPinch:)] 
                                           autorelease];

[[self view] addGestureRecognizer:twoFingerPinch];
}
Run Code Online (Sandbox Code Playgroud)

通过这个你已经初始化了一个实例,它将在屏幕(或你正在应用这个方法的视图)上处理两个手指感觉现在定义如果你已经识别了两个手指该怎么做:

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
{
    NSLog(@"Pinch scale: %f", recognizer.scale);
    CGAffineTransform transform = CGAffineTransformMakeScale(recognizer.scale, recognizer.scale);
                                      // you can implement any int/float value in context of what scale you want to zoom in or out
    self.view.transform = transform;
}
Run Code Online (Sandbox Code Playgroud)

以上定义的方法不是通过UIButton操作自动调用,而是简单地解决您的问题如果您只想在IBAction上使用缩放,那么只需执行以下操作:

 -(IBAction)methodCalledOnClickingUIButton:(id)sender
{
    if(sender==zoomInButton)
     {
       scaleValue++;
     }
    else if(sender==zoomOutButton)
     {
       scaleValue--;
     }
     CGAffineTransform transform = CGAffineTransformMakeScale(scaleValue,scaleValue);
     self.view.transform = transform;
}
Run Code Online (Sandbox Code Playgroud)

其中scaleValue是任何浮动值.您可以根据您的应用要求进行设置!我希望它对你有用!:)

  • 你的答案很棒,但这并不能平滑地缩放:即每次你停止缩放 - 捏合手势,没有状态保存并且它将识别器.scale重置为0:因此将导致从每次开始时的开始变焦停下来.... (2认同)