IOS簡單拖拽手勢實現


 要實現手勢拖拽,最重要的一點是要獲得我們點擊手機屏幕時的落點位置,然后讓視圖的位置隨着我們拖拽的方向和坐標的變化而變化,就能達到我們要的效果。

以下是例子只處理了向右拖拽,如果是向左拖拽,您可根據需求自定義

1.創建手勢並添加到相應試圖上

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

 [self.mSliderView addGestureRecognizer:pan];

2.實現手勢事件

/**

     *  獲取手勢按下的地方

     */

    CGPoint panGesturePoint = [gesture translationInView:self.mSliderView];

    

    /**

     * 處理像左/像右拖拽事件

     */

    if (panGesturePoint.x < 0) {

        [self transitionView:gesture.view];

    } else {

        gesture.view.center = CGPointMake(gesture.view.center.x + panGesturePoint.x, gesture.view.center.y);

    }

     /**

     * 手勢結束和失敗時處理方式

     */

    if (gesture.state == UIGestureRecognizerStateFailed || gesture.state == UIGestureRecognizerStateEnded) {

        /**

         * 試圖向右拖拽超過試圖本身一般位置時,關閉篩選試圖;否則返回單初始位置

         */

        if (gesture.view.center.x <= (kSizeScreenWidth / 2 + 60 + ((kSizeScreenWidth - 60) / 2))) {

           ...  回退動作

        } else {

          ...  關閉動作

        }

    }

    /**

     * 清空位移數據,避免拖拽事件的位移疊加

     */

    [gesture setTranslation:CGPointZero inView:gesture.view];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM