加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 当我返回查看控制器时,在tableview顶部刷新控制

发布时间:2020-12-14 19:30:05 所属栏目:百科 来源:网络整理
导读:出于某种原因,第一次加载视图控制器时,刷新控件的行为与预期一致(它在向下滑动时显示在tableview下).问题是当我点击另一个选项卡,然后返回到视图控制器时,刷新控件不再淡入,并且在tableview顶部可见. 这是代码的一部分: class CoreTableViewController : UI
出于某种原因,第一次加载视图控制器时,刷新控件的行为与预期一致(它在向下滑动时显示在tableview下).问题是当我点击另一个选项卡,然后返回到视图控制器时,刷新控件不再淡入,并且在tableview顶部可见.

When I go back to view controller

这是代码的一部分:

class CoreTableViewController : UIViewController,UITableViewDataSource,UITableViewDelegate {

var tableView:UITableView!
var tableData:Array<AnyObject> = []
var dataFetched:Bool = false
var refreshControl:UIRefreshControl?

override func viewDidLoad() {
    super.viewDidLoad()

    self.edgesForExtendedLayout = UIRectEdge.None;

    self.tableView = self.assignTableView()
    self.tableView.delegate = self
    self.tableView.dataSource = self
    self.tableView.registerClass(UITableViewCell.self,forCellReuseIdentifier: "Cell")
    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None;

    if self.enableRefresher() {
        self.setRefreshControl()
    }
}

func enableRefresher() -> Bool {
    return true
}

func fetchData(cleanFirst:Bool = false) {
    // Fetch data.
}

func refresh() {
    self.fetchData(true)
    self.refreshControl!.endRefreshing()
}

func setRefreshControl() {
    self.refreshControl = UIRefreshControl()
    //self.refreshControl!.attributedTitle = NSAttributedString(string: "Actualizar")
    self.refreshControl!.addTarget(self,action: #selector(CoreTableViewController.refresh),forControlEvents: UIControlEvents.ValueChanged)
    self.tableView.addSubview(refreshControl!)
}

}

有什么想法吗?

解决方法

我在这里找到了修复: https://stackoverflow.com/a/29088409/209200

而不是self.tableView.addSubview(refreshControl!),它应该是self.tableView.insertSubview(refreshControl!,atIndex:0).

这导致refres控件出现在tableview上.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读