当我慢慢下拉刷新时,我看到UIActivityIndicator圈在开始刷新之前慢慢变得更加完整。在圆圈完成并且刷新实际触发之前,内容跳跃/猛然下降,然后圆圈开始旋转。我慢慢拉下来时才注意到这一点。
我在名为mainSV的滚动视图中使用pull来刷新
self.refresh = [[UIRefreshControl alloc] init];
[self.refresh addTarget:self action:@selector(handleRefresh) forControlEvents:UIControlEventValueChanged];
[self.mainSV addSubview:self.refresh];
为什么会发生这种跳跃/混蛋?
答案 0 :(得分:8)
这可能是iOS中的一个错误。您的设置是正确的,我在我的应用程序中看到了相同的内容。
答案 1 :(得分:5)
我怀疑跳跃/混蛋是由于“双重”动作造成的。
Xcode 5发布后,refresh
实施发生了变化。
因此,不再需要按Apple Documentation中所述设置目标操作。
当您使用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];
答案 2 :(得分:1)
我需要查看其余代码(或至少是滚动+刷新方法)来诊断问题。
这是我们在objective-c和swift中实现自定义pull to refresh控件的教程。如果您遵循本教程,您不应该看到任何跳跃或抽搐。
http://www.jackrabbitmobile.com/design/ios-custom-pull-to-refresh-control/
希望它有所帮助!
答案 3 :(得分:0)