我有一個UITableView
,其中包含UIPanGestureRecognizer
的單元格。這些作品在iOS7上完美無瑕,但在iOS8上無法使用。我試圖實現UIGestureRecognizerDelegate
中的幾種方法,但我無法使其工作。UITableView中的UIPanGestureRecognizer在iOS8上不起作用
這是怎麼了我已經實現了我的細胞:
- (void)awakeFromNib
{
self.panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panning:)];
self.panRecognizer.delegate = self;
self.panRecognizer.minimumNumberOfTouches = 1;
self.panRecognizer.maximumNumberOfTouches = 1;
[self.contentView addGestureRecognizer:self.panRecognizer];
}
-(void)panning:(UIPanGestureRecognizer*)sender
{
[self.dragDelegate dragCell:self isPanningForRecognizer:sender];
}
#pragma mark - UIGestureRecognizerDelegate
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return YES;
}
這僅僅適用於iOS7,但它不能在iOS8上工作。
我已經嘗試實現這些方法藏漢(即使它沒有必要在iOS7):
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
NSLog(@"shouldRecognizeSimultaneouslyWithGestureRecognizer");
return YES;
}
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
NSLog(@"gestureRecognizerShouldBegin");
return YES;
}
但我的問題似乎是,gestureRecognizer:shouldReceiveTouch:
不會被調用的iOS8上。在iOS8上調用的唯一方法是gestureRecognizerShouldBegin:
,即使我返回YES
也不起作用。
如果你能想出另一種方法使其工作,我願意以不同的方式處理這個問題。