UIRefreshControl 取消自定义单元格顶部的触摸 - Objective-c iOS

UIRefreshControl cancel touch on top of custom cell - Objective-c iOS

我的 UIRefreshControl 有问题:第一次触发后,它会取消触摸我的第一个自定义单元格(即使它是隐藏的),就像它是不可见的一样。 如果我从 superview 中删除它,然后再次添加它,问题仍然存在。

实际上我有一个 UITableView,其中填充了一些数据。用户可以通过拉动它来刷新 table 视图,为此我在我的 table 视图中添加了一个 UIRefreshControl,就像在 viewDidLoad()

中这样
self.refreshControl = [[UIRefreshControl alloc]init];
self.refreshControl.tintColor = [UIColor colorWithRed:0.35 green:0.78 blue:0.98 alpha:1.0];
[_tableView addSubview:self.refreshControl];

我没有向 refreshControl 对象添加选择器,因为我希望 tableView 仅在用户停止触摸屏幕时刷新。为此,我添加了这个 ScrollView 的委托方法:

- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView {

    if (self.refreshControl.isRefreshing) {

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            dispatch_sync(dispatch_get_main_queue(), ^{

                [self refreshTable];

            });

        });

    }

}

这是我的刷新方法:

- (void)refreshTable {

    //refresh code

    [self.refreshControl endRefreshing];

}

我不想因为这个问题将我的应用程序上线,即使这不会阻止用户使用它!

在此先感谢您的帮助!

我找到了解决方法post

在我的例子中非常有效,我不必添加选择器,只需实现那些 UIScrollViewDelegate 的方法:)