UIRefreshControl 和 tableFooterView = UIView()

Posted

技术标签:

【中文标题】UIRefreshControl 和 tableFooterView = UIView()【英文标题】:UIRefreshControl and tableFooterView = UIView() 【发布时间】:2016-07-28 11:01:22 【问题描述】:

在我的 tableView 中,我需要 self.tableView.tableFooterView = UIView() 否则表格会向下滚动太远。问题是,如果我添加它,那么我刷新 UIRefreshControl 的拉动将不再起作用。有没有办法两者兼得?

【问题讨论】:

【参考方案1】:

为此自定义控件刷新控件

【讨论】:

很抱歉,您能进一步解释一下吗?【参考方案2】:

没有理由不能两者兼得。您是否以正确的方式添加了UIRefreshControl? 这是我的一个项目的工作代码:

var pullToRefreshControl : UIRefreshControl!

override func viewDidLoad() 
        super.viewDidLoad()

        self.setFooterView()
        self.addPullToRefreshView()
    

private func setFooterView() 

        let footerView = UIView()

        let footerLabel = UILabel()
        footerLabel.text = "Table Footer"
        footerLabel.sizeToFit()
        footerView.addSubview(footerLabel)

        self.tableView.tableFooterView = footerView
    

private func addPullToRefreshView() 

        pullToRefreshControl = UIRefreshControl()
        pullToRefreshControl.attributedTitle = NSAttributedString(string: "Pull To Refresh")
        pullToRefreshControl.addTarget(self, action: "refresh:", forControlEvents: .ValueChanged)

        self.tableView.addSubview(pullToRefreshControl!)
    

【讨论】:

是的,我在我的项目中尝试了这个确切的代码,但它没有工作。 (我不得不删除-> UIVIew,因为没有回报)。由于某种原因,页脚阻止了所有滚动。 一个小提示,可能会产生重大影响 - 将 tableview 样式设置为 Grouped 而不是 Plain,无论是在 InterfaceBuilder 中还是通过代码。 对不起。解决了!我有 self.tableView.alwaysBounceVertical = false 导致刷新不起作用 很高兴你知道了!

以上是关于UIRefreshControl 和 tableFooterView = UIView()的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 和 UIRefreshControl 因未知原因被下移

scrollsToTop 和 UIRefreshControl 的错误

在 UIViewController 中使用 UIRefreshControl 和 UITableView

UIRefreshControl 问题

带有 UISearchBar 的异常行为 UIRefreshControl

带有 RxSwift 的 UIRefreshControl