新增手勢控制

2021-06-26 12:12:29 字數 1422 閱讀 6197

// 構建手勢探測器

gesturedetector mygesture = new gesturedetector(activity, this);

private static final int fling_min_distance = 120;// 移動最小距離

private static final int fling_min_velocity = 200;// 移動最大速度

@override

public boolean ontouch(view v, motionevent event)

/** 使用者按下觸控螢幕、快速移動後鬆開,由1個motionevent action_down, 多個action_move, 1個action_up觸發

*/// 主要方法

@override

public boolean onfling(motionevent e1, motionevent e2, float velocityx,

float velocityy)

// 向左

if (e2.getx() - e1.getx() > fling_min_distance

&& math.abs(velocityx) > fling_min_velocity)

return false;

}// 下面方法沒用,但是這裡必須實現

/* 使用者長按觸控螢幕,由多個motionevent action_down觸發 */

@override

public void onlongpress(motionevent e)

/* 使用者按下觸控螢幕,並拖動,由1個motionevent action_down, 多個action_move觸發 */

@override

public boolean onscroll(motionevent e1, motionevent e2, float distancex,

float distancey)

/** 使用者輕觸觸控螢幕,尚未鬆開或拖動,由乙個1個motionevent action_down觸發

* 注意和ondown()的區別,強調的是沒有鬆開或者拖動的狀態

*/@override

public void onshowpress(motionevent e)

/* 使用者(輕觸觸控螢幕後)鬆開,由乙個1個motionevent action_up觸發 */

@override

public boolean onsingletapup(motionevent e)

@override

public boolean ondown(motionevent e) {

return false;

// 新增手勢控制

rl_box.setontouchlistener(this);

常見手勢新增

synthesize imageview cgfloat lastscalefactor 1 放大 縮小 cgfloat netrotation 旋轉 cgpoint nettranslation 平衡 nsarray images 陣列 int imageindex 0 陣列下標 void vie...

使用手勢控制

1,uipangesturerecognizer pangesturerecognizer uipangesturerecognizer alloc initwithtarget self action selector handlepangesturerecognizer 2,void handl...

給手勢新增tag值

1 定義乙個tap手勢,uitapgesturerecognizer tap uitapgesturerecognizer alloc initwithtarget self action selector evetap 2 通過uiview給手勢設定tag值 uiview tapview tap ...