在滚动浏览中检测捏端的末端
-
23-10-2019 - |
题
我有一个滚动浏览量,当捏手势结束时,我想对此进行操作。
Samplecontroller.h
@interface SampleController : UIViewController <UIPopoverControllerDelegate,UITableViewDelegate>{
IBOutlet UIScrollView *mapScrollView;
}
@property (nonatomic, retain) IBOutlet UIScrollView *mapScrollView;
@end
SampleconTroller.m
@implementation SampleController
@synthesize mapScrollView;
- (void)viewDidLoad {
[super viewDidLoad];
UIPinchGestureRecognizer *pinchRecognizer =
[[UIPinchGestureRecognizer alloc]
initWithTarget:self
action:@selector(handlePinchFrom:)];
[mapScrollView addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];
}
- (void)handlePinchFrom:(UIPinchGestureRecognizer *)recognizer {
if(recognizer.state == UIGestureRecognizerStateEnded)
{
NSLog(@"handleTapEND");
}
else
{
NSLog(@"zooming ...");
}
}
- (void)dealloc {
[mapScrollView release];
[super dealloc];
}
@end
我的问题是:
当我有Pinchrognizer 它阻止滚动 mapscrollview。
是否有另一种方法可以检测滚动浏览的滚动或放大的末端?
谢谢,
布鲁诺
解决方案
我找到了一个解决方案:
我的控制器上有一个计时器,如果滚动或拖拉发生,则执行操作:
- (void)viewDidLoad {
[super viewDidLoad];
self.mapTimer = [[NSTimer
scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(updateDisplay:)
userInfo:nil
repeats:YES] retain];
}
- (void)updateDisplay:(NSTimer*)theTimer {
if(mapHasMoved)
{
NSLog(@"updateDisplay");
[self updateProducts];
mapHasMoved = FALSE;
}
}
- (void)endZoomingOrScrollingHandler{
mapHasMoved = TRUE;
}
不隶属于 StackOverflow