ios UIScrollView響應點擊事件


前言:還是那個圖片瀏覽的demo,利用UIScrollView實現圖片的分頁顯示,現在希望點擊每一張圖片,都可以跳轉到另一個專門對圖片進行放大縮小的controller.

面臨的問題是:UIScrollView作為一個如此常用的控件,查看UIScrollViewDelegate,只有滑動響應,竟然沒有響應點擊事件的方法!那么,就只有自己寫點擊事件了。

事件的具體操作好寫,關鍵是如何把點擊事件傳進來?有兩種方法:一、用現成的協議 二、自己新定義一個協議。

這里,我們介紹第一種方法,

協議@protocol UIGestureRecognizerDelegate <NSObject>    類UITapGestureRecognizer
 
具體實現如下:
//對srcollView添加點擊響應
UITapGestureRecognizer *sigleTapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapGesture:)];
sigleTapRecognizer.numberOfTapsRequired = 1;
 [_srcollView addGestureRecognizer:sigleTapRecognizer];

點擊后的響應:

-(void)handleTapGesture:( UITapGestureRecognizer *)tapRecognizer
{
    int tapCount = tapRecognizer.numberOfTapsRequired;
    // 先取消任何操作???????這句話存在的意義???
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
    switch (tapCount){
        case 1:
            [self performSelector:@selector(handleSingleTap) withObject:nil afterDelay:0.22];
            break;
//        case 2:
//           [self handleDoubleTap:tapRecognizer];
             break;
    }
}
  

針對不同點擊(單擊、雙擊)的具體操作:這個自己根據自己的情況來寫。

關於不使用UIGestureRecognizerDelegate,完全由自己寫,可參考http://www.cnblogs.com/neozhu/archive/2012/03/30/2425224.html,但是我沒有驗證過,不知道可不可行。

如果要直接判斷收拾方向之類的,比如向左或向右輕掃,可以使用UISwipeGestureRecognizer類。可參考http://o0o0o0o.iteye.com/blog/875333


免責聲明!

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



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