我有一个UITableViewController,我在上面设置了一个backgroundView。此控制器安装了一个UIRefreshControl。问题是,当我设置背景视图时,刷新控件是不可见的。如果删除背景视图,则可以看到刷新控件。
我做错了什么吗?
发布于 2013-09-20 01:38:41
造成这种行为的原因是,在iOS 7中,UITableView
的backgroundView
是绘制在UIRefreshControl
之上的。不确定这是出于设计还是问题,但这里有一个解决办法,为我解决了这个问题:
self.tableView.backgroundView.layer.zPosition -= 1;
此代码用于设置UITableViewController refreshControl
属性的位置。
发布于 2013-09-19 19:40:22
您可以尝试将背景发送到背面,或者将刷新控件发送到前面。刷新控件很可能仅停留在索引0处。
发布于 2016-05-05 00:20:51
似乎UITableViewController在重新加载期间(在其“backgroundView”后面)将其UIRefreshControl推回到0索引,而不管您最初将它放在哪个索引上。这就是对我起作用的东西(iOS 9):在IB中禁用刷新。在代码中创建UIRefreshControl,并在设置backgroundView后将其添加到tableView:
let someView = UIView()
self.tableView.backgroundView = someView
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(MyTableViewController.refresh(_:)), forControlEvents: .ValueChanged)
self.tableView.insertSubview(refreshControl, atIndex: 1)
https://stackoverflow.com/questions/18903076
复制相似问题