Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIRefreshControl选择器未调用目标c_Ios_Objective C - Fatal编程技术网

Ios UIRefreshControl选择器未调用目标c

Ios UIRefreshControl选择器未调用目标c,ios,objective-c,Ios,Objective C,UIRefreshControl未调用其选择器。以下是UITableView的层次结构: UINavigationController-UITabBarController-UIViewController-UITableView 下面是代码 refreshControl = [[UIRefreshControl alloc] init]; [refreshControl addTarget:self action:@selector(handleRefresh:) forControlEve

UIRefreshControl
未调用其选择器。以下是
UITableView
的层次结构:

UINavigationController-UITabBarController-UIViewController-UITableView
下面是代码

refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[contestTableView setContentOffset:CGPointMake(0, -self.refreshControl.frame.size.height) animated:YES];
[contestTableView addSubview:refreshControl];
[refreshControl layoutIfNeeded];
[refreshControl beginRefreshing];


-(void)handleRefresh:(id)sender
{
    NSLog (@"Pull To Refresh Method Called");
    [self getDataFromServer];
    [self.refreshControl endRefreshing];
}
刷新控件在UITableview下拉时未调用HandlerRefresh函数。
请提供帮助。

您需要添加刷新控件,请先尝试示例代码

swift:
     if #available(iOS 10.0, *) {
            tableView.refreshControl = refreshControl
        } else {
            tableView.addSubview(refreshControl)
        }


obj-c :

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(refresh1:) forControlEvents:UIControlEventValueChanged];
    [yourTableview addSubview:refreshControl];

试着在代码的下面一行添加注释。由于您已经在viewDidLoad中启动了BeginRefresh刷新操作,并且没有使用EndRefresh()将控件返回其默认状态,因此将不会启动选择器HandlerRefresh:

[refreshControl beginRefreshing];
开始折射()
通知控件刷新操作是以编程方式启动的。只有当外部事件源触发滚动视图的编程刷新时,才应调用它。例如,您使用计时器定期更新tableview。

作为应答添加了它的swift和询问目标CY您不需要显式设置ContentOffset。您将代码放在哪种方法中以添加刷新控制尝试删除上述行,但现在当tableview被下拉时,刷新控制不可见,并且没有执行任何操作。可能是关于您的tableview内容偏移量太好了,竖起大拇指您保存了我的一天:)