在iOS中拉刷新跳转

在iOS中拉刷新跳转,ios,scrollview,uirefreshcontrol,Ios,Scrollview,Uirefreshcontrol,当我慢慢下拉刷新时,我看到UIActivityIndicator循环在开始刷新之前慢慢变得更完整。就在圆圈完成并触发刷新之前,内容跳下/猛拉,然后圆圈开始旋转。我只是在慢慢往下拉时才注意到这一点 我在一个名为mainSV的滚动视图中使用pull刷新 self.refresh = [[UIRefreshControl alloc] init]; [self.refresh addTarget:self action:@selector(handleRefresh) forContr

当我慢慢下拉刷新时,我看到UIActivityIndicator循环在开始刷新之前慢慢变得更完整。就在圆圈完成并触发刷新之前,内容跳下/猛拉,然后圆圈开始旋转。我只是在慢慢往下拉时才注意到这一点

我在一个名为mainSV的滚动视图中使用pull刷新

    self.refresh = [[UIRefreshControl alloc] init];
    [self.refresh addTarget:self action:@selector(handleRefresh) forControlEvents:UIControlEventValueChanged];
    [self.mainSV addSubview:self.refresh];

为什么会发生这种跳/跳?

这可能是iOS中的一个bug。您的设置是正确的,我在我的应用程序中也看到了同样的情况。

我怀疑跳跃/猛拉是由于“双重”动作造成的

Xcode 5发布后,
刷新
实现发生了变化

因此,不再需要如中所述设置目标操作的要求

在使用情节提要时,在Interface Builder/Storyboard文件中,选择情节提要场景(表视图控制器)

在属性检查器中,在副标题表视图控制器下,选择项目“刷新”,并将设置从“禁用”更改为“启用”

删除或注释掉问题中包含的三行代码。(当需要时,即在Xcode 5之前,我将此代码放在我的
viewDidLoad
TVC生命周期方法中。)

如果未自动插入代码,则将其添加为公共或私人
iAction

- (IBAction)refresh:(UIRefreshControl *)sender;
并将场景/表格视图控制器连接到已发送事件“值已更改”

确保已正确配置刷新操作

- (IBAction)refresh:(UIRefreshControl *)sender {
    [self.refreshControl beginRefreshing];

    //  Refresh code for your TVC

    [self.refreshControl endRefreshing];
}
请注意,
refreshControl
不需要设置任何属性-我怀疑当您在故事板的TVC属性中选择设置Refreshing[Enabled]时,会有一个触发器自动合成此属性

如果需要在代码中调用refresh from,请使用此行

[self refresh:self.refreshControl];

我需要查看代码的其余部分(或者至少是滚动+刷新方法)来诊断问题

下面是我们在objective-c和swift中实现自定义拉动刷新控件的教程。如果你遵循本教程,你不应该看到任何跳跃或抽搐


希望有帮助

老问题,但如果有人仍然存在此问题,而您正在使用NavigationController,只需将您的NavigationBar设置为“半透明”

当出于某种原因触发UIControlEventValueChanged时,使用非半透明导航栏会导致tableview轻微跳转


XCode 10.1

您是否使用故事板?你的目标iOS是什么?我有一个主故事板。滚动视图位于xib中。我刚刚注意到这在iOS 6中不是问题,它在iOS 7中只会跳转。
refresh
在iOS 6和iOS 7之间更改。我将提供一个答案…实际上是我的错误,
刷新
实现在Xcode 4.5.2和Xcode 5+之间发生了更改,如果我理解正确的话-这只适用于
UITableViewController的子类
?但不是针对
UITableView
内部的
UIViewController
?当以这种方式实现时,我仍然会有一个跳跃/跳跃:(@oyatek如果您是正确的,刷新控件是专门为在由表视图控制器管理的表视图中使用而设计的。但不确定问题中提到了第二个选项?@lostintranslation您可能需要在问题中添加更多代码…例如,解释触发时正在运行的代码r刷新?还有另一个问题……当你在正常情况下向下拉时,这种行为会重复吗?