我已經分類了UITableView(作爲KRTableView)並實現了四種基於觸摸的方法(touchesBegan,touchesEnded,touchesMoved和touchesCancelled),以便我可以檢測基於觸摸的事件何時在UITableView上處理。基本上我需要檢測的是UITableView向上或向下滾動。檢測UITableView滾動
但是,創建UITableView和創建上述方法的子類只能檢測UITableViewCell中發生滾動或手指移動的情況,而不是整個UITableView。
只要我的手指移動到下一個單元格上,觸摸事件就不會執行任何操作。
這是我如何繼承的UITableView:
#import "KRTableView.h"
@implementation KRTableView
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
NSLog(@"touches began...");
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];
NSLog(@"touchesMoved occured");
}
- (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent *)event {
[super touchesCancelled:touches withEvent:event];
NSLog(@"touchesCancelled occured");
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
NSLog(@"A tap was detected on KRTableView");
}
@end
我怎麼能當UITableView的是或滾動上下檢測?
viewDidScroll正在不斷被只要你滾動調用。所以你不能在scrollViewDidScroll中設置變量isDragging爲galse。 – 2013-03-28 07:19:56
是否有可能在滾動或向下滾動之間進行區分? – Markus 2017-05-05 07:54:39
@Markus https://stackoverflow.com/questions/2543670/finding-the-direction-of-scrolling-in-a-uiscrollview – tdios 2017-06-01 14:25:52