如何使用简单的方法按钮对UIView进行缩放,哪种方法是最好的?(例如)
(IBAction)zoomin:(int)distance
{
method here
}
(IBAction)zoomout:(int)distance
{
and here
}
可以使用双手势识别来完成:
您只需要编写:
-(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操作调用的,但它可以简单地解决您的问题。如果您严格要求在IBAction中使用缩放,则只需执行以下操作: -(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+
使用两个手指检测 UIView
的缩放。以下是一个在主视图上监听的示例:
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")
}
}