iOS UITableViewController 甚至在顶部滚动显示 UIRefreshControl

标签 ios objective-c iphone uitableview uirefreshcontrol

我的 UITableViewController 的 tableview 遇到了一个意想不到的问题。在 iOS 9.2 中测试
我在 Storyboard 中为 UITableViewController 启用了“刷新”,并为 valueChanged 附加了 IBAction。请注意,tableview 的部分标题使用“Plain”样式和自定义高度 45。
问题是,通常你会期望拉下大量的 tableview 来触发刷新控制并开始旋转。
然而,在我的场景中,即使是一点点滚动也会使刷新控件出现并开始旋转。就像字面上的2厘米,这将使它出现。即使我还没有拉到足够多的表格 View 来触发刷新,它也会自动扩展高度,这甚至很奇怪。
另请注意,即使它开始完全旋转并自动结束旋转,但我在 IBAction 中链接的用于刷新控件的方法实际上还没有被触发。
例如,我正在慢慢向上滚动,当我快要到达顶部时,刷新控件将显示并将 tableview 向下移动,开始旋转,停止旋转。所有这一切都没有拉动 tableview 相当大的数量。
请注意,在我的代码中,我根本没有“beginRefreshing”。此外,我没有任何“scrollViewDidScroll”或“scrollViewDidDrag”等方法来触发刷新控制。
我从来没有见过这样的问题。由于其他原因,我无法将自定义 ViewController 与自定义 TableView 一起使用,因此需要解决此问题。

最佳答案

您可以添加UIRefreshControl以编程方式,它将正常工作。这是一个简单的例子,其中 UIRefreshControl 不是 IBOutlet (我没有包含 tableView 数据源方法):

#import "ViewController.h"

@interface ViewController () <UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (strong, nonatomic) UIRefreshControl *refreshControl;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.refreshControl = [[UIRefreshControl alloc] init];
    self.refreshControl.backgroundColor = [UIColor lightGrayColor];
    [self.refreshControl addTarget:self action:@selector(actionRefresh:) forControlEvents:UIControlEventValueChanged];
    [self.tableView addSubview:self.refreshControl];
}

- (void)actionRefresh:(id)sender {
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.refreshControl endRefreshing];
    });
}

// ...UITableView dataSource methods

@end

关于iOS UITableViewController 甚至在顶部滚动显示 UIRefreshControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35077011/

相关文章:

ios - UISplitViewController 主内容宽度

ios - 有没有比手动 po 每个变量更好的方法来从协议(protocol)中检查 swift 对象的属性?

objective-c - 从不同的 View Controller 访问属性

ios - 使用 NSFetchedResultsController 的 UITableView 空白石板

java - 如何在Android和iOS浏览器上运行JSP文件?

iphone - facebook中的图片共享不起作用

ios - 使用 instantiateViewControllerWithIdentifier 访问相同的 View Controller

ios - 动态访问变量

ios - 如何在tableView中加载更多单元格

iphone呈现模态视图 Controller