为什么UIRefreshControl跳跃?

时间:2015-06-23 19:24:45

标签: ios swift uitableview uirefreshcontrol

我尝试将UIRefreshControl与swift 1.2一起使用,除了用户界面外,它的工作正常。它跳了,我不知道为什么。 这就是我在做的事情:

class ViewController: UIViewController {

     var refreshControl:UIRefreshControl!

    @IBOutlet weak var tableView: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()

        self.refreshControl = UIRefreshControl()
        self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
        self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
        self.tableView.addSubview(refreshControl)
    }

    func refresh(sender:AnyObject) {
        // Code to refresh table view
    }

}

你可以从这里下载我的poc项目: POC project

当你拉下tableView时,突然跳了一下。有谁知道为什么?

如果我使用UITableViewController,它工作正常但我不想使用这个UI对象。我想在UIViewController中使用一个简单的UITableView。

4 个答案:

答案 0 :(得分:4)

我遇到过这个问题,我相信这是因为UIRefreshControl适用于UITableViewController。

我认为您应该尝试在索引0处插入视图,如下所示。 (原谅目标-c)

[self.tableView insertSubview:_refreshControl atIndex:0];

修改

您是否有停止refreshControl的代码?

    // End Refreshing
    if ([self.refreshControl isRefreshing]) {
        float delayInSeconds = 1.0;

        dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
        dispatch_after(popTime, dispatch_get_main_queue(), ^{
            [self.refreshControl endRefreshing];

        });
    }

答案 1 :(得分:4)

我找到了一个解决方案,它有效:

$('[id^=start]')

答案 2 :(得分:2)

对于Xamarin.iOS,它看起来像这样:

set

答案 3 :(得分:0)

试试这个会很好用

var tableViewController = UITableViewController(style: UITableViewStyle.Plain)
tableViewController.tableView = self.myTableView

self.refreshControl = UIRefreshControl()
self.refreshControl.addTarget(self, action: #selector(self.getConnections),forControlEvents: .ValueChanged)
tableViewController.refreshControl = self.refreshControl