iOS中的Pull to Refresh Jump
当我慢慢下拉刷新时,我看到UIActivityIndicator圈在开始刷新之前慢慢变得更加完整。 在圆圈完成并且刷新实际触发之前,内容跳跃/猛然下降然后圆圈开始旋转。 我慢慢拉下来时才注意到这一点。
我正在使用pull来刷新名为mainSV的滚动视图
self.refresh = [[UIRefreshControl alloc] init]; [self.refresh addTarget:self action:@selector(handleRefresh) forControlEvents:UIControlEventValueChanged]; [self.mainSV addSubview:self.refresh];
为什么会发生这种跳跃/混蛋?
这可能是iOS中的一个错误。 你的设置是正确的,我在我的应用程序中看到了同样的事情。
我怀疑跳跃/混蛋是由于“双重”动作造成的。
Xcode 5发布后, refresh
实现发生了变化。
因此,不再需要如Apple文档中所述设置目标操作。
在使用Storyboard时,在Interface Builder / Storyboard文件中,选择故事板场景(表视图控制器)。
在属性检查器中,在子视图表视图控制器下 ,选择“刷新”项,并将设置从“已禁用”更改为“已启用”。
删除或注释掉您在问题中包含的三行代码。 (当需要时,即在Xcode 5之前,我将此代码放在我的viewDidLoad
TVC生命周期方法中。)
如果没有自动插入您的代码,那么将其添加为公共或私人IBAction
…
- (IBAction)refresh:(UIRefreshControl *)sender;
并将您的场景/表视图控制器连接到已发送事件 “值已更改”。
确保您的刷新操作已正确配置…
- (IBAction)refresh:(UIRefreshControl *)sender { [self.refreshControl beginRefreshing]; // Refresh code for your TVC [self.refreshControl endRefreshing]; }
请注意,不需要为refreshControl
设置任何属性 – 我怀疑当您在故事板中选择TVC属性中的Refreshing [Enabled]设置时,会触发自动合成此属性。
如果您需要在代码中调用刷新,请使用此行…
[self refresh:self.refreshControl];
我需要查看其余代码(或至少是滚动+刷新方法)来诊断问题。
这是我们在objective-c和swift中实现自定义pull to refresh控件的教程。 如果您遵循本教程,您不应该看到任何跳跃或抽搐。
http://www.jackrabbitmobile.com/design/ios-custom-pull-to-refresh-control/
希望能帮助到你!