iOS一共提供了6種類型的手勢操作,分別為:點擊凛驮、捏合裆站、旋轉(zhuǎn)、滑動、拖動宏胯、長按羽嫡。手勢需要添加到UIView類以及其子類之上,同時每個UIView可以添加多個手勢肩袍。
適合對象:中級學(xué)習(xí)者
運行環(huán)境:Xcode7 + iOS9
一杭棵、UIGestureRecognizer類簡介
UIGestureRecognizer類是一個抽象類,不能直接使用氛赐,具體使用過程中需要使用其子類魂爪。UIGestureRecognizer一共包括6個子類,分別對應(yīng)6種手勢艰管,即:
UIRotationGestureRecognizer:旋轉(zhuǎn)
UIPanGestureRecognizer:拖動滓侍,其又包含另外一個子類:UIScreenEdgePanGestureRecognizer
UILongPressGestureRecognizer:長按
二、UIGestureRecognizer創(chuàng)建方法
創(chuàng)建一個UIGestureRecognizer子類對象需要有4個步驟:
創(chuàng)建一個UIView類的對象牲芋;
創(chuàng)建一個手勢類對象撩笆,并使用- initWithTarget:action:方法進(jìn)行對象初始化,設(shè)置當(dāng)手勢事件發(fā)生時缸浦,調(diào)用的方法夕冲;
為UIView對象添加手勢,使用 addGestureRecognizer:方法裂逐;
實現(xiàn)手勢事件發(fā)生時所調(diào)用的方法歹鱼。
三、UIGestureRecognizer類常用屬性以及方法
3.1 初始化手勢
– (instancetype)initWithTarget:(nullable id)target action:(nullable SEL)action絮姆;//初始化手勢對象醉冤,并設(shè)置手勢發(fā)生時調(diào)用的方法
3.2 獲取手勢點擊的位置
– (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(nullable UIView*)view; // 獲取手勢點擊的位置;
3.3 獲取手勢點擊的狀態(tài)和視圖
@property(nonatomic,readonly)UIGestureRecognizerStatestate;
其中:常用的UIGestureRecognizerState有:
UIGestureRecognizerStateBegan:開始手勢事件
UIGestureRecognizerStateEnded:結(jié)束手勢事件
UIGestureRecognizerStateChanged:手勢位置發(fā)生變化
UIGestureRecognizerStateFailed:無法識別的手勢
@property(nullable,nonatomic,readonly)UIView*view;//手勢事件對應(yīng)的視圖對象