UIGestureRecognizer 各個子類以及其作用

在 iOS 里,UIGestureRecognizer?是一個抽象基類,專門用來處理手勢事件。它本身不能直接用,必須用它的?子類。這些子類分別對應常見的手勢識別器。


常見的?UIGestureRecognizer?子類及作用

1.?UITapGestureRecognizer

  • 作用:點擊手勢(單擊 / 雙擊)。

  • 典型場景:點擊按鈕外區域關閉鍵盤、圖片點擊放大。

  • 參數:可以設置?numberOfTapsRequired(點擊次數)、numberOfTouchesRequired(手指數)。

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    tap.numberOfTapsRequired = 2; // 雙擊
    tap.numberOfTouchesRequired = 1; // 單指
    [view addGestureRecognizer:tap];
    

2.?UILongPressGestureRecognizer

  • 作用:長按手勢。

  • 典型場景:微信長按消息彈出菜單、長按圖片保存。

  • 參數minimumPressDuration(按壓時間,默認 0.5 秒),allowableMovement(手指允許移動的范圍)。

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
    longPress.minimumPressDuration = 0.8;
    [view addGestureRecognizer:longPress];
    

3.?UIPanGestureRecognizer

  • 作用:拖拽手勢(連續)。

  • 典型場景:拖拽視圖移動,滑動解鎖。

  • 方法translationInView:?獲取手指相對位置,velocityInView:?獲取速度。

    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
    [view addGestureRecognizer:pan];
    

4.?UISwipeGestureRecognizer

  • 作用:輕掃手勢(單次)。

  • 典型場景:左右滑動切換頁面。

  • 參數direction(方向,可組合:UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)。

    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
    swipe.direction = UISwipeGestureRecognizerDirectionLeft;
    [view addGestureRecognizer:swipe];
    

5.?UIPinchGestureRecognizer

  • 作用:捏合手勢(雙指縮放)。

  • 典型場景:圖片縮放、地圖縮放。

  • 方法scale(縮放倍數),可結合?view.transform

    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
    [view addGestureRecognizer:pinch];
    

6.?UIRotationGestureRecognizer

  • 作用:旋轉手勢(雙指旋轉)。

  • 典型場景:圖片旋轉。

  • 方法rotation(旋轉角度,弧度制)。

    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotation:)];
    [view addGestureRecognizer:rotation];
    

總結對比

子類作用常用場景
UITapGestureRecognizer單擊 / 雙擊點背景關閉鍵盤、點擊放大
UILongPressGestureRecognizer長按彈出菜單、保存圖片
UIPanGestureRecognizer拖拽拖動視圖、滑動解鎖
UISwipeGestureRecognizer輕掃翻頁、滑動刪除
UIPinchGestureRecognizer捏合縮放圖片/地圖縮放
UIRotationGestureRecognizer旋轉圖片旋轉

額外說明:

  • 手勢沖突處理:可以用?gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:?來允許多個手勢并存。

  • UIGestureRecognizer 基類:也提供了手勢狀態(began / changed / ended / cancelled),子類里都能用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919527.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡 HTTPS 全流程

HTTPS 通信的全流程(特別是 TLS 握手階段)中使用的三個隨機數是保障安全性的核心設計,不能隨意減少。每個隨機數都承擔著至關重要的安全職責。下面詳細解釋 HTTPS 全流程,并重點分析這三個隨機數的作用和必要性:&#…

DL00271-基于YOLOv11的激光雷達LiDAR船舶目標檢測含完整數據集

【CSDN推薦】基于YOLOv11的激光雷達(LiDAR)船舶目標檢測——含完整數據集!🚢 科研人員必看! 高校老師、學生和研究者們,前沿技術來了!本論文利用YOLOv11模型,結合激光雷達&#xff0…

SQL-leetcode—3374. 首字母大寫 II

3374. 首字母大寫 II 表:user_content -------------------- | Column Name | Type | -------------------- | content_id | int | | content_text| varchar | -------------------- content_id 是這張表的唯一主鍵。 每一行包含一個不同的 ID 以及對應的文…

告別籠統的 200 OK:一份給 API 設計者的 HTTP 狀態碼終極指南

文章目錄寫在前面問題描述核心結論與建議簡要描述詳細闡述1xx - 信息性響應 (Informational)2xx - 成功 (Successful)3xx - 重定向 (Redirection)4xx - 客戶端錯誤 (Client Error)5xx - 服務器錯誤 (Server Error)HTTP 狀態碼速查表參考以及更多更詳細的狀態碼查詢寫在前面 你…

從防抖節流到鏈表樹:編程世界中的抽象優化藝術

從防抖節流到鏈表樹:編程世界中的抽象優化藝術 在編程的知識體系中,有些概念看似毫不相關,卻在底層邏輯上有著驚人的相似之處。防抖與節流、鏈表與樹,這兩組分屬不同領域的概念,正是這種思維共性的典型代表。它們不僅展…

第三階段數據-3:數據庫腳本生成,備份與還原,分離與附加

1_生成數據庫腳本(1)在數據庫上右鍵選擇任務(2)選擇生成腳本(3)選擇下一步,如果下次不想顯示此頁面,可勾選不再顯示此頁(4)如果導出全部數據,選擇…

React框架超詳細入門到實戰項目演練【前端】【React】

React框架 1.前端展示解釋 當客戶端訪問服務器時,會從服務器中下載很多靜態文件到本地,比如css、js等前端渲染文件 下載完成之后瀏覽器會將這些文件組合形成前端頁面渲染出來。 2.React概述 React是一個專注于構建用戶界面的JavaScript庫,…

本地部署的終極多面手:Qwen2.5-Omni-3B,視頻剪、音頻混、圖像生、文本寫全搞定

Qwen2.5-Omni-3B是什么? Qwen2.5-Omni-3B 是由阿里巴巴 Qwen 團隊推出的一款輕量級多模態大模型,作為 Qwen2.5-Omni-7B 的高效優化版本,專為消費級硬件環境量身打造。該模型具備處理文本、音頻、圖像和視頻等多種模態輸入的能力,…

連續空間強化學習:策略輸出的兩種形態 —— 概率分布與確定性動作

在強化學習的世界里,智能體與環境的交互核心是 “動作選擇”。當面對離散動作空間(如圍棋的落子點、游戲的按鍵操作)時,智能體可以直接枚舉或概率選擇有限的動作;但在連續動作空間中(如機器人關節角度、無人…

IT運維背鍋權限泄露?集中式管控如何化解風險?

在企業數字化轉型的浪潮中,IT運維團隊常常被推到風口浪尖。員工離職后權限未及時回收、賬號共享導致數據泄露、跨系統權限配置不一致……這些問題一旦暴露,IT運維往往成為“背鍋俠”。權限泄露不僅威脅企業數據安全,還可能導致合規性風險&…

2025 世界機器人大會啟示錄:機構學 × AI × 視頻鏈路的融合之路

引言 2025 年 8 月 8 日,北京再一次成為全球矚目的科技焦點——世界機器人大會盛大開幕。來自全球的 200 余家頂尖企業齊聚一堂,帶來超過 1500 件展品,其中首發新品突破 100 款,涵蓋了從工業制造、醫療康復到服務陪伴、特種作業的…

從零開始部署經典開源項目管理系統最新版redmine6-Linux Debian12

安裝Debian 12 前面為了在windows上好開發,想要在windows上配置開發環境,以源碼方式在本地部署運行,但經過好幾天各種版本切換及配置組件庫等各種操作后,證明windows上搭建redmine6支持的運行環境沒有那么簡單,后續有…

超長視頻生成新突破!LongVie框架問世,創作不再受時長限制

超長視頻生成新突破!LongVie框架問世,創作不再受時長限制 文章來源:Poixe AI 在AI技術飛速發展的當下,視頻生成領域取得了令人矚目的進步,尤其是在短視頻創作方面。然而,當視頻時長超過一分鐘時&#xff…

MongoDB 查詢方法與高級查詢表(Python版)

目錄 一、MongoDB3步快速安裝 1.1?下載安裝包 1.2運行安裝程序? 1.3?驗證安裝?打開CMD執行: 1.4 基本查詢操作 二、高級查詢操作符表 2.1 比較操作符 2.2 邏輯操作符 2.3 元素操作符 2.4 數組操作符 三、高級查詢案例 3.1 復雜條件組合 3.2 數組查…

選型指南:如何為企業挑選合適的邊緣計算網關

選型指南:如何為企業挑選合適的邊緣計算網關在企業邁向智能化轉型的道路上,選擇一款合適的物聯網邊緣計算網關至關重要。面對眾多型號和功能各異的網關產品,企業該如何做出正確抉擇呢??首先要考慮的是網關的兼容性。藍蜂物聯網邊…

HT8693 音頻功率放大器:賦能優質音頻體驗的核心之選

在音頻設備快速迭代的當下,用戶對音質表現、設備穩定性和場景適應性的需求日益提升,一款性能卓越的音頻功率放大器成為連接音源與聽覺享受的關鍵橋梁。HT8693 憑借雙模式切換、強勁輸出、智能保護等核心優勢,為各類音頻設備提供了可靠的性能支…

python+flask后端開發~項目實戰 | 博客問答項目--模塊化文件架構的基礎搭建

項目功能概述: 首頁(公開博客顯示)博客發布與查詢用戶登錄與注冊底層MySQL數據庫的動態響應與支持 簡介:Flask作為Python的一個輕量級Web框架,以其靈活性和可擴展性,贏得了眾多開發者的青睞。從本文開始,你將從0開始…

精品方案 | GCKontrol與OMNeT++聯合仿真在機載網絡性能分析中的應用

概述本文基于GCKontrol搭建了飛行仿真模型,并基于OMNeT搭建了機內網絡系統,實現了不同專業、不同平臺的模型集成與調試。通過這種聯合仿真架構,能夠模擬飛機在不同飛行狀態下的網絡性能,極大提高了性能評估的精度和可靠性。這不僅…

階躍星辰 StepFun 入駐 GitCode 平臺,帶來工業級 AI 體驗

在 2025 年的 AI 產業應用實踐中,開發者面臨三重核心挑戰:???上下文窗口局限?:主流 AI 模型普遍受限于 4K-32K 的上下文長度,導致技術方案文檔需被強制拆分處理,破壞架構設計的連貫性。 ???跨行業文檔識別缺陷?…

亞馬遜新品爆單策略:從傳統困境到智能突破

新品上架,是每個亞馬遜賣家最期待又最煎熬的階段。我至今記得一款新品上線后的第一周:每天看著廣告費像流水一樣燒掉,單量卻遲遲不見起色。后臺的ACOS一路飆升,幾天時間,我的預算已經消耗了一大半。那種“錢花了&#…