Xcode 放大和缩小UIView

Xcode 放大和缩小UIView,xcode,ios,zooming,Xcode,Ios,Zooming,使用简单的方法按钮放大和缩小UIView的最佳方式是什么。(e.i 可以使用双手指手势识别器完成此操作: 你只需写下:- -(void)viewDidLoad { UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self

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


可以使用双手指手势识别器完成此操作: 你只需写下:-

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

[[self view] addGestureRecognizer:twoFingerPinch];
}
通过此操作,您已经初始化了一个实例,该实例将处理屏幕上的两个手指感觉(或应用此方法的视图) 现在定义如果识别出这两个手指该怎么办:

- (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;
}
上面定义的方法不是通过UIButton操作自动调用的,但它将简单地解决您的问题 如果您严格希望在iAction上使用zoom,只需执行以下操作:

 -(IBAction)methodCalledOnClickingUIButton:(id)sender
{
    if(sender==zoomInButton)
     {
       scaleValue++;
     }
    else if(sender==zoomOutButton)
     {
       scaleValue--;
     }
     CGAffineTransform transform = CGAffineTransformMakeScale(scaleValue,scaleValue);
     self.view.transform = transform;
}
其中scaleValue是任何浮点值。您可以根据应用程序的要求进行设置! 我希望它能对你起作用!:)

Swift 3、4+

用两个手指检测
ui视图的放大/缩小
。以下是收听主视图的示例:

override func viewDidLoad() {    
     var pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(pinchedView))
     view.isUserInteractionEnabled = true
     view.addGestureRecognizer(pinchGesture)    
}

// Listener

@objc func pinchedView(sender: UIPinchGestureRecognizer) {
    if sender.scale > 1 {
        print("Zoom out")
    } else{
        print("Zoom in")
    }
}

您的回答很好,但这并不能平滑缩放:即,每次停止缩放-捏手势时,都不会保存任何状态,并且会将识别器重置。缩放为0:因此,每次停止缩放时,都会从一开始就开始缩放。我想缩放,但高度/宽度不能增加,但视图应缩放。可能吗?
override func viewDidLoad() {    
     var pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(pinchedView))
     view.isUserInteractionEnabled = true
     view.addGestureRecognizer(pinchGesture)    
}

// Listener

@objc func pinchedView(sender: UIPinchGestureRecognizer) {
    if sender.scale > 1 {
        print("Zoom out")
    } else{
        print("Zoom in")
    }
}