IOS UIGestureRecognizer 手勢

UIGestureRecognizer手勢

一:手勢衍生類

在iPhone或iPad的開發(fā)中检柬,除了用touchesBegan / touchesMoved / touchesEnded這組方法來控制使用者的手指觸控外蔼紧,也可以用UIGestureRecognizer的衍生類別來進行判斷。用UIGestureRecognizer的好處在于有現(xiàn)成的手勢,開發(fā)者不用自己計算手指移動軌跡。UIGestureRecognizer的衍生類別有以下幾種:

UITapGestureRecognizer點一下

UIPinchGestureRecognizer二指往內(nèi)或往外撥動

UIRotationGestureRecognizer旋轉(zhuǎn)

UISwipeGestureRecognizer滑動,快速移動

UIPanGestureRecognizer拖移岩榆,慢速移動

UILongPressGestureRecognizer長按

這些手勢別在使用上也很簡單,只要在使用前定義并添加到對應(yīng)的視圖上即可。

二:手勢的使用

首先要開啟用戶交互屬性(只有此屬性設(shè)為YES 添加的手勢才會生效)

_imageView.userInteractionEnabled = YES;

然后給imageView添加點擊手勢

//UIGestureRecognizer 是所有手勢的基類(父類)

//點擊手勢

//target- action 叫 目標(biāo)-動作機制朗恳,(得益于oc的動態(tài)運行時機制湿颅,可以讓任意target對象载绿,執(zhí)行任何aciton方法)

//將點擊手勢粥诫,添加到imageView上(默認(rèn)為單擊)

//設(shè)置點擊次數(shù) 默認(rèn)為2的時候為雙擊觸發(fā)

tap.numberOfTapsRequired =1;

//需要多少個手指同時點擊觸發(fā)

tap.numberOfTouchesRequired =1;

[_imageView addGestureRecognizer:tap];

三:關(guān)聯(lián)手勢的處理

問題來了。有些手勢其實是互相關(guān)聯(lián)的崭庸,例如Tap與LongPress怀浆、Swipe與Pan,或是Tap一次與Tap兩次怕享。當(dāng)一個UIView同時添加兩個相關(guān)聯(lián)的手勢時执赡,到底我這一下手指頭按的要算是Tap還是LongPress?如果照預(yù)設(shè)作法來看函筋,只要「先滿足條件」的就會跳出并呼叫對應(yīng)方法沙合,舉例來說,如果同時注冊了Pan和Swipe跌帐,只要手指頭一移動就會觸發(fā)Pan然后跳出首懈,因而永遠都不會發(fā)生Swipe;單點與雙點的情形也是一樣谨敛,永遠都只會觸發(fā)單點究履,不會有雙點。

那么這個問題有解嗎脸狸?答案是肯定的最仑,UIGestureRecognizer有個方法叫做requireGestureRecognizerToFail,他可以指定某一個recognizer炊甲,即便自己已經(jīng)滿足條件了泥彤,也不會立刻觸發(fā),會等到該指定的recognizer確定失敗之后才觸發(fā)卿啡。這是一種思想吟吝,一種優(yōu)先確定不確定的事件,根據(jù)不確定事件的反饋去執(zhí)行應(yīng)該執(zhí)行的事件牵囤。

//雙擊確定偵測失敗才會觸發(fā)單擊

[singleTap requireGestureRecognizerToFail:doubleTap];

注意:一個手勢只能關(guān)聯(lián)一個view爸黄,一個view可以關(guān)聯(lián)多個手勢

四:

//將像素point由point所在視圖轉(zhuǎn)換到目標(biāo)視圖view中,返回在目標(biāo)視圖view中的像素值

-?(CGPoint)convertPoint:(CGPoint)point?toView:(UIView?*)view;

//將像素point從view中轉(zhuǎn)換到當(dāng)前視圖中揭鳞,返回在當(dāng)前視圖中的像素值

-?(CGPoint)convertPoint:(CGPoint)point?fromView:(UIView?*)view;

//將rect由rect所在視圖轉(zhuǎn)換到目標(biāo)視圖view中炕贵,返回在目標(biāo)視圖view中的rect

-?(CGRect)convertRect:(CGRect)rect?toView:(UIView?*)view;

//將rect從view中轉(zhuǎn)換到當(dāng)前視圖中,返回在當(dāng)前視圖中的rect

-?(CGRect)convertRect:(CGRect)rect?fromView:(UIView?*)view;

例把UITableViewCell中的subview(btn)的frame轉(zhuǎn)換到controllerA中

//?controllerA中有一個UITableView,?UITableView里有多行UITableVieCell野崇,cell上放有一個button

//在controllerA中實現(xiàn):

CGRect?rc?=?[cell?convertRect:cell.btn.frame?toView:self.view];

//或

CGRect?rc?=?[self.view?convertRect:cell.btn.frame?fromView:cell];

//此rc為btn在controllerA中的rect

//或當(dāng)已知btn時:

CGRect?rc?=?[btn.superview?convertRect:btn.frame?toView:self.view];

//或

CGRect?rc?=?[self.view?convertRect:btn.frame?fromView:btn.superview];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末称开,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鳖轰,老刑警劉巖清酥,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蕴侣,居然都是意外死亡焰轻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門昆雀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辱志,“玉大人,你說我怎么就攤上這事狞膘】粒” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵挽封,是天一觀的道長已球。 經(jīng)常有香客問我,道長辅愿,這世上最難降的妖魔是什么智亮? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮渠缕,結(jié)果婚禮上鸽素,老公的妹妹穿的比我還像新娘。我一直安慰自己亦鳞,他們只是感情好馍忽,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著燕差,像睡著了一般遭笋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上徒探,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天瓦呼,我揣著相機與錄音,去河邊找鬼测暗。 笑死央串,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碗啄。 我是一名探鬼主播质和,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稚字!你這毒婦竟也來了饲宿?” 一聲冷哼從身側(cè)響起厦酬,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瘫想,沒想到半個月后仗阅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡国夜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年减噪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片支竹。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡旋廷,死狀恐怖鸠按,靈堂內(nèi)的尸體忽然破棺而出礼搁,到底是詐尸還是另有隱情,我是刑警寧澤目尖,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布馒吴,位于F島的核電站,受9級特大地震影響瑟曲,放射性物質(zhì)發(fā)生泄漏饮戳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一洞拨、第九天 我趴在偏房一處隱蔽的房頂上張望扯罐。 院中可真熱鬧,春花似錦烦衣、人聲如沸歹河。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秸歧。三九已至,卻和暖如春衅澈,著一層夾襖步出監(jiān)牢的瞬間键菱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工今布, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留经备,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓部默,卻偏偏與公主長得像侵蒙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子甩牺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容