Как реализовать пролистывание справа налево в UITableViewCell внутри UIPageViewController
У меня есть одно требование,
Я реализовал один UIPageViewController
для отображения нескольких форм, в каждом индексе, он показывает один список элементов в UITableView
, при нажатии каждого элемента открывается соответствующая форма.
Теперь мне нужно скопировать элемент из списка, проведя пальцем влево, как мы делаем в UITableView
но здесь я сталкиваюсь с одной проблемой, поскольку перелистывание противоречит перелистыванию страниц.
Для достижения этого поведения у меня есть жест смахивания на UITableviewCell, но он не распознает смахивание все время.
Пожалуйста, найдите фрагмент кода ниже,
#import FormPageVC.h
@interface FormPageVC () <UIGestureRecognizerDelegate>
@end
@implementation FormPageVC
-(void)viewDidLoad {
[super viewDidLoad];
UIGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognized:)];
recognizer.delegate = self;
[self.view addGestureRecognizer:recognizer];
for (UIGestureRecognizer *gesRecog in self.view.gestureRecognizers) {
gesRecog.delegate = self;
}
}
-(void)gestureRecognized:(UISwipeGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
self.pageViewController.dataSource = self;
}
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
BOOL shouldReceiveTouch = YES;
if([touch.view isKindOfClass:[UITableViewCell class]]) {
shouldReceiveTouch = NO;
}
// UITableViewCellContentView => UITableViewCell
if([touch.view.superview isKindOfClass:[UITableViewCell class]]) {
shouldReceiveTouch = NO;
}
// UITableViewCellContentView => UITableViewCellScrollView => UITableViewCell
if([touch.view.superview.superview isKindOfClass:[UITableViewCell class]]) {
shouldReceiveTouch = NO;
}
for (UIScrollView *view in self.pageViewController.view.subviews) {
if ([view isKindOfClass:[UIScrollView class]]) {
view.scrollEnabled = shouldReceiveTouch;
}
}
return shouldReceiveTouch; // handle the touch
}
@end
Любая помощь, чтобы оптимизировать или улучшить этот код?