只要手指觸摸屏幕,滑動,從屏幕離開,系統都會產生UIEvent對象類型的事件---當然包括UITouch事件 – touchesBegan:withEvent: 當用戶觸摸到屏幕時調用方法 – touchesMoved:withEvent: 當用戶觸摸到屏幕并移動時調用此方法 – touchesEnded:withEvent: 當觸摸離開屏幕時調用此方法
– touchesCancelled:withEvent: 當觸摸被取消時調用此方法
例子如下:
//滑動開始事件- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint pointone = [touch locationInView:self.view];//獲得初始的接觸點 self.startPoint = pointone; }//滑動移動事件- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; //imgViewTop是滑動后最后接觸的View CGPoint pointtwo = [touch locationInView:imgViewTop]; //獲得滑動后最后接觸屏幕的點 if(fabs(pointtwo.x-startPoint.x)>100) { //判斷兩點間的距離 bMove = YES; } } //滑動結束處理事件-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = [touches anyObject]; CGPoint pointtwo = [touch locationInView:self.view]; //獲得滑動后最后接觸屏幕的點 if((fabs(pointtwo.x-startPoint.x)>50)&&(bMove)) { //判斷點的位置關系 左滑動 if(pointtwo.x-startPoint.x>0) { //左滑動業務處理 if (clicks>0) { clicks--; if ([wyKPI.sortZbs count]>1) { [btnRight setEnabled:YES]; if(clicks==0) { [btnLeft setEnabled:NO]; [btnRight setEnabled:YES]; } [labTitle setText:[wyKPI.sortZbs objectAtIndex:(NSUInteger)clicks]]; [labTitle setFont:[UIFont systemFontOfSize:14.0f]]; [tabWyKPI reloadData]; } } } //判斷點的位置關系 右滑動 else { //右滑動業務處理 if (clicks<[wyKPI.sortZbs count]-1) { clicks++; if ([wyKPI.sortZbs count]>1) { [btnLeft setEnabled:YES]; if(clicks==[wyKPI.sortZbs count]-1) { [btnLeft setEnabled:YES]; [btnRight setEnabled:NO]; } [labTitle setText:[wyKPI.sortZbs objectAtIndex:clicks]]; [labTitle setFont:[UIFont systemFontOfSize:14.0f]]; [tabWyKPI reloadData]; } } } }}
新聞熱點
疑難解答