我有一个自定义UIRefreshControl“拉动刷新”,出于某种原因,当我开始滚动时,视图出现在所有其他视图之上,而不是逐渐显示自己,因为滚动被拖下来..这就是我的意思:
现在我试图通过在viewDidLoad中清除背景和色调来尝试修补它:
var refreshControl: UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
refreshControl = UIRefreshControl()
refreshControl.backgroundColor = UIColor.clearColor()
refreshControl.tintColor = UIColor.clearColor()
collectionView?.addSubview(refreshControl)
}
虽然这确实解决了刷新问题,但无论其透明度如何,刷新控件仍然位于我的视图层次结构之上,你可以看到当我发布滚动时,字母仍悬在虽然它确实隐藏了视图,但当你开始拖动滚动时,它会很快出现故障,再次显示视图:
现在我甚至尝试调用sendSubviewToBack
和insertSubview:aboveSubview:
方法,但它们没有做任何事情。请记住,这是一个collectionViewController而不是顶部有collectionView的UIViewController,所以我想在顶视图后面没有一个视图,我可以向后面发送一些东西..但是有什么逻辑可以实现,它会在滚动开始时调整视图边界?
答案 0 :(得分:1)
试试这个:
refreshControl.layer.zPosition = -1
另外,请谨慎使用UIRefreshControl
而不将其附加到实际的UITableViewController
。您可能会看到奇怪的工件,如口吃(即使将其附加到UITableView
也会导致错误)。见: