WMPageController icon indicating copy to clipboard operation
WMPageController copied to clipboard

iOS 11系统UITableViewCell的左滑删除失效

Open CoderMC opened this issue 6 years ago • 6 comments

iOS 11系统,UITableViewCell的左滑删除很难触发,多试几次也可以触发。iOS 11 以下系统没这个bug. WMScrollView里面的方法不起作用了

  • (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { //MARK: UITableViewCell 删除手势 if ([NSStringFromClass(otherGestureRecognizer.view.class) isEqualToString:@"UITableViewWrapperView"] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { return YES; } return NO; }

CoderMC avatar May 28 '18 03:05 CoderMC

😌

forkdog avatar May 28 '18 08:05 forkdog

sos

CoderMC avatar May 28 '18 10:05 CoderMC

iOS11 都不走 return YES

  • (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

    //MARK: UITableViewCell 删除手势 if ([NSStringFromClass(otherGestureRecognizer.view.class) isEqualToString:@"UITableViewWrapperView"] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { return YES; } return NO; }

forkdog avatar May 28 '18 12:05 forkdog

当滑动在VC的tableview上时-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer方法返回YES,但这样会出现tableview左滑时上下滑动的问题,需要在scrollview代理方法中做处理,左滑时禁止tableview滑动.这样处理就导致没法pod管理,作者也建议在外边处理手势冲突,目前还没想到在外边处理的方法.

CoderMC avatar Jun 05 '18 03:06 CoderMC

此问题有解决方法了吗?

pengrun avatar Jul 10 '18 06:07 pengrun

想到一个笨办法: /* 在需要左滑的控制器里面保存一个全局标识 */

  • (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [HSShareData sharedInstance].isExpandQACollectPage = YES; }
  • (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [HSShareData sharedInstance].isExpandQACollectPage = NO; }

#import "WMScrollView+HSAdd.h" /* 添加WMScrollView分类,加上下面这个代理方法 */ @implementation WMScrollView (HSAdd)

  • (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { if ([HSShareData sharedInstance].isExpandQACollectPage && [otherGestureRecognizer.className isEqualToString:@"_UISwipeActionPanGestureRecognizer"]) return YES; return NO; }

结果在我当前应用是完美解决。备注:可能全局变量也不需要,这个没有试,但我觉得加上会保险一些。

Want2Free avatar Dec 11 '18 06:12 Want2Free