2015-09-10 21 views
1

我有一个自定义的UIRefreshControl“拉刷新”,出于某种原因,当我开始滚动时,视图出现在所有其他视图之上,而不是逐渐显示自己,因为滚动被拖下来。这就是我的意思:如何在我的视图层次结构中调整UIRefreshControl的位置?

enter image description here

现在,我已经试图通过使背景和色调的颜色在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) 

    } 

虽然这并修复只是被贴满了刷新的问题无论其透明度如何,refreshCont都是如此rol仍然位于我的视图层次结构的顶部,您可以看到当我释放滚动时,字母仍然悬在视图上。虽然它确实隐藏了视图,但当您开始拖动滚动时,它会非常快速地显示再次认为:

enter image description here

现在我甚至尝试调用sendSubviewToBackinsertSubview:aboveSubview:方法,但他们没有做任何事情..请记住,这是一个collectionViewController,而不是一个UIViewController与顶部的CollectionView ,所以我想没有一个视图后面的顶视图,我可以发送一些东西到后面..但是有没有我能实现的任何逻辑,将调整滚动开始时的意见界限?

回答

1

试试这个:

refreshControl.layer.zPosition = -1 

此外,要小心使用UIRefreshControl没有它连接到一个实际的UITableViewController。你可能会看到奇怪的文物像口吃(即使附上它只是一个UITableView将导致错误)。请参阅:

UIRefreshControl without UITableViewController

+0

当我添加它作为一个子视图到我的背景,它只是消失了,我的意思是控制的运动仍然存在,但其不可见 –

+0

我可以设置RefreshControl的的backgroundColor应对和tintColor在viewDidLoad中清除以正确掩饰自己,但是我能做些什么来突然拆分第二个毛刺,否则这个代码会在滚动拖动开始时显示出来? –

+0

我能做些什么来防止这种情况发生? –

相关问题