国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

IOS中的七種手勢小結

2020-07-26 03:03:40
字體:
來源:轉載
供稿:網友

今天為大家介紹一下IOS 的七種手勢,手勢在開發中經常用到,所以就簡單 通俗易懂的說下, 話不多說,直接看代碼:

// 初始化一個UIimageViewUIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 300, 300)];imageView.image = [UIImage imageNamed:@"12.jpg"];// UIImageView的用戶交互是默認關閉的,要想使他可以處理觸摸事件,我們得手動打開它[imageView setUserInteractionEnabled:YES];[self.window addSubview:imageView];//初始化一個視圖(響應者)來承載手勢/*UIView *gestureView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];//當前視圖放置到屏幕中央gestureView.center = self.window.center;gestureView.backgroundColor = [UIColor yellowColor];[self.window addSubview:gestureView];

1、輕拍手勢

//創建輕拍手勢UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];

1.設置觸控對象,和輕拍的次數

//設置觸控對象的個數(幾個手指)[tapGR setNumberOfTouchesRequired:1];//設置輕拍次數[tapGR setNumberOfTapsRequired:2];//給創建好的視圖添加手勢[gestureView addGestureRecognizer:tapGR];//輕拍手勢的回調方法- (void)tapAction:(UITapGestureRecognizer*)sender{//可以根據手勢得到它當前所作用的視圖UIImageView *imageView = (UIImageView*)sender.view;//得到textfield viewWithTag此方法的返回值為UIView類型,但是UITextField為UIView的子類,父類對象不能直接指向子類對象,所以需要強制轉換UITextField *textField = (UITextField*)[self.window viewWithTag:1000];//回收鍵盤,取消第一響應者[textField resignFirstResponder];NSLog(@"我輕拍了gestureView");}

2、捏合手勢

//創建捏合手勢UIPinchGestureRecognizer* pinchGR = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)];pinchGR.delegate = self; // 可以在同一個視圖上實現多個手勢//捏合手勢的回調方法- (void)pinchAction:(UIPinchGestureRecognizer*)sender{//通過捏合手勢的到縮放比率float scale = sender.scale;//得到該手勢所作用的視圖UIView *view = sender.view;//2D仿射變換函數中的縮放函數來實現視圖的放大縮小//是在原有基礎上來改變當前的視圖//函數的第一個參數:現有的視圖的transform值//第二個參數:x軸上的縮放比率//第三個參數:y軸上的縮放比率//是在視圖最初的transform狀態上改變,不管執行多少次,都是以該視圖最初的transform狀態為基礎來改變view.transform = CGAffineTransformMakeScale(2, 2);view.transform = CGAffineTransformScale(view.transform, scale, scale);//每次捏合動作完畢之后,讓此捏合值復原,使得它每次都是從100%開始縮放sender.scale = 1;}

3、旋轉手勢

//旋轉手勢UIRotationGestureRecognizer* rotaGR = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotaAction:)];rotaGR.delegate = self;//旋轉手勢回調方法- (void)rotaAction:(UIRotationGestureRecognizer*)sender{//通過手勢的到旋轉角度float rota = sender.rotation;//得到該手勢作用的視圖UIView *view = sender.view;//通過2D仿射變換函數中的旋轉函數來使得當前視圖旋轉。view.transform = CGAffineTransformRotate(view.transform, rota);//復原sender.rotation = 0;}

4、平移手勢

//平移手勢UIPanGestureRecognizer *panGP = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];//平移手勢的回調方法- (void)panAction:(UIPanGestureRecognizer*)sender{//得到當前手勢所在視圖UIView *view = sender.view;//得到我們在視圖上移動的偏移量CGPoint currentPoint = [sender translationInView:view.superview];//通過2D仿射變換函數中與位移有關的函數實現視圖位置變化view.transform = CGAffineTransformTranslate(view.transform, currentPoint.x, currentPoint.y);//復原 // 每次都是從00點開始[sender setTranslation:CGPointZero inView:view.superview];}

5、邊緣輕掃手勢

//邊緣輕掃手勢UIScreenEdgePanGestureRecognizer *edgePanGR = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(edgePanAction:)];edgePanGR.edges = UIRectEdgeAll;//邊緣輕掃手勢回調方法- (void)edgePanAction:(UIScreenEdgePanGestureRecognizer*)sender{NSLog(@"我成功的觸發了屏幕邊緣手勢");}

6、長按手勢

// ⑥長按手勢UILongPressGestureRecognizer *longPressPR = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];longPressPR.minimumPressDuration = 1;// ⑥長按手勢的回調方法- (void)longPressAction:(UILongPressGestureRecognizer *)sender{if (sender.state == UIGestureRecognizerStateEnded) {UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"看你麻痹" message:@"不服你咬死我" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];[alertView show];}}

7、輕掃手勢

// ⑦輕掃手勢UISwipeGestureRecognizer *swipeGR = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeAction:)];// ⑦輕掃手勢的回調方法- (void)swipeAction:(UISwipeGestureRecognizer *)sender{if (sender.state == UIGestureRecognizerStateEnded) {UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"槽尼瑪" delegate:self cancelButtonTitle:@"紙張" destructiveButtonTitle:@"哈哈哈" otherButtonTitles:@"切毛毛", nil];[actionSheet showInView:self.window];}}

給imageView視圖添加手勢

// 3.給圖片添加手勢 一個視圖可以添加多種手勢,但是一個手勢,只能添加到一個視圖上[imageView addGestureRecognizer:tapGR];[imageView addGestureRecognizer:pinchGR];[imageView addGestureRecognizer:rotaGR];[imageView addGestureRecognizer:panGR];[imageView addGestureRecognizer:edgePanGR];[imageView addGestureRecognizer:longPressPR];[imageView addGestureRecognizer:swipeGR];

當一個視圖上想要添加多種手勢的時候就要用到手勢的代理(重點)

pragma mark ----手勢的代理方法// 使得多個手勢可以同時響應- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{// 返回值為YES的時候,當執行一個手勢的操作的時候,也可以執行其他手勢的操作return YES;}

以上所述是小編給大家介紹的IOS中的七種手勢小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广丰县| 禄劝| 蛟河市| 开封市| 平安县| 建昌县| 湘乡市| 柳林县| 儋州市| 厦门市| 姚安县| 白沙| 尉氏县| 太和县| 郓城县| 金沙县| 昆明市| 肇源县| 土默特左旗| 广昌县| 万全县| 玉林市| 泾源县| 达州市| 志丹县| 广德县| 家居| 长沙市| 石柱| 鄂尔多斯市| 武义县| 凤翔县| 宜宾县| SHOW| 桓仁| 敦煌市| 肇州县| 偃师市| 新丰县| 贵南县| 蒙自县|