解決UIScrollView 的點擊事件,uiscrollview事件
目前有兩種方法
第一種 通過 Category 擴充 UIScrollView 對象,添加觸摸事件,(不建議,後續擴充不方便)代碼如下
@implementation UIScrollView (ExtendTouch)- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [[self nextResponder] touchesBegan:touches withEvent:event]; [super touchesBegan:touches withEvent:event]; UITouch *touch = [touches anyObject]; CGFloat startx = [touch locationInView:self].x; NSLog(@"%f",startx);}-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { [[self nextResponder] touchesMoved:touches withEvent:event]; [super touchesMoved:touches withEvent:event];}- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [[self nextResponder] touchesEnded:touches withEvent:event]; [super touchesEnded:touches withEvent:event];}
第二種 添加手勢 (推薦,易於維護)
//添加點按擊手勢監聽器 UITapGestureRecognizer *tapGesture=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapUiscrollView:)]; //設定手勢屬性 tapGesture.delegate = self; tapGesture.numberOfTapsRequired=1;//設定點按次數,預設為1,注意在iOS中很少用雙擊操作 tapGesture.numberOfTouchesRequired=1;//點按的手指數 [self.scrllview addGestureRecognizer:tapGesture];
@interface ViewController ()<UIScrollViewDelegate,UIGestureRecognizerDelegate>