日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS手势之pinch

發布時間:2025/4/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS手势之pinch 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天用地圖的時候有用到pinch 捏合手勢

通過捏合手勢動作可以很輕松的來改變視圖元素的一個比例

?手勢的動作狀態有如下三種,一般是按照順序來進行轉換的。?

1. UIGestureRecognizerStateBegan?

2. UIGestureRecognizerStateChanged?

3. UIGestureRecognizerStateEnded?

一旦捏合手勢動作產生了之后,我們就需要在捕獲的事件中進行一個頁面調整。其中有兩個比較重要的變量?scale 和?velocity ,前者是一個比例范圍,后者是一個變化速率的,也就是說每次變化的一個像素點。?

由于?scale 這個屬性的值是每次都在變的,所以我們需要用另外一個變量來保存當前的一個scale的值,這個變量叫做currentScale,這樣我們就可以進行一個縮小,變大的視圖效果了 。

代碼:

  • #import?"ViewController.h"??
  • ??
  • @interface?ViewController?()??
  • @property(nonatomic,?strong)UIPinchGestureRecognizer?*pinchGestureRecognizer;??
  • @property(nonatomic,?strong)UIView?*myView;??
  • @property(nonatomic,?unsafe_unretained)CGFloat?currentScale;??
  • @end??
  • ??
  • @implementation?ViewController??
  • ??
  • -?(void)viewDidLoad??
  • {??
  • ????[super?viewDidLoad];??
  • ??????
  • ????CGRect?labelRect?=?CGRectMake(0,?0,?200,?200);??
  • ? ? self.myView=?[[UIView?alloc]?initWithFrame:self.view.frame];??
  • ????self.myView.center?=?self.view.center;??
  • ????self.myView.backgroundColor?=?[UIColor?grayColor];??
  • ? ? //打開view的交互??
  • ????self.myBlackLabel.userInteractionEnabled?=?YES;??
  • ????[self.view?addSubview:self.myView];??
  • ??????
  • ????//創建一個手勢 ?
  • ????self.pinchGestureRecognizer?=?[[UIPinchGestureRecognizer?alloc]?initWithTarget:self?action:@selector(handlePinches:)];??
  • ????[self.myView?addGestureRecognizer:self.pinchGestureRecognizer];??
  • }??
  • ? #pragma mark - 手勢事件
  • -(void)handlePinches:(UIPinchGestureRecognizer?*)paramSender{??
  • ????if?(paramSender.state?==?UIGestureRecognizerStateEnded)?{??
  • ????????self.currentScale?=?paramSender.scale;??
  • ????}else?if(paramSender.state?==?UIGestureRecognizerStateBegan?&&?self.currentScale?!=?0.0f){??
  • ????????paramSender.scale?=?self.currentScale;??
  • ????}??
  • ????if?(paramSender.scale?!=NAN?&&?paramSender.scale?!=?0.0)?{??
  • ????????paramSender.view.transform?=?CGAffineTransformMakeScale(paramSender.scale,?paramSender.scale);??
  • ????}??
  • }??
  • ??
  • -?(void)didReceiveMemoryWarning??
  • {??
  • ????[super?didReceiveMemoryWarning];??
  • ????//?Dispose?of?any?resources?that?can?be?recreated.??
  • }??
  • ??
  • @end
  • 轉載于:https://www.cnblogs.com/pengjuwang/p/5378830.html

    總結

    以上是生活随笔為你收集整理的iOS手势之pinch的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。