1.创建一个UIView
在view中添加添加方法:
-(
void
)pinch:(
UIPinchGestureRecognizer
*)gesure{
if (gesure. state == UIGestureRecognizerStateChanged || gesure. state == UIGestureRecognizerStateEnded ){
self . faceCardScaleFactor *= gesure. scale ;
gesure. scale = 1.0 ;
if (gesure. state == UIGestureRecognizerStateChanged || gesure. state == UIGestureRecognizerStateEnded ){
self . faceCardScaleFactor *= gesure. scale ;
gesure. scale = 1.0 ;
}
}
2.在对应的ViewController中中添加上述View属性
在ViewDidLoad方法中添加如下代码
- (
void
)viewDidLoad {
[super viewDidLoad];
[self.myView addGestureRecognizer:[[UIPinchGestureRecognizer alloc] initWithTarget:self.myView action:@selector(pinch:)]]; 其中myView即为View属性
}
3.在View中,属性faceCardScaleFactor 的setter方法中需要设置 [self setNeedsDisplay] setNeedsDisplay会在属性变更后,自动调用drawRect方法,重画视图。
代码如下:
@synthesize
faceCardScaleFactor =
_faceCardScaleFactor
;
-( void )setFaceCardScaleFactor:( CGFloat )faceCardScaleFactor{
_faceCardScaleFactor = faceCardScaleFactor;
[ self setNeedsDisplay ];
-( void )setFaceCardScaleFactor:( CGFloat )faceCardScaleFactor{
_faceCardScaleFactor = faceCardScaleFactor;
[ self setNeedsDisplay ];
}
4这种情况下,pingch手势就可以正常工作。
注意:需要哪种手势,就在在addGestureRecognizer中添加对应的UIPinchGestureRecognizer,如果写错的画,对应的手势就不再会其作用