2017-10-11 83 views
0

我已经以编程方式将UIRefreshControl添加为我的UICollectionView的子视图。如何重新定位UIRefreshControl

lazy var refreshControl: UIRefreshControl = { 
    let refreshControl = UIRefreshControl() 
    refreshControl.addTarget(self, action: #selector(MyPhotospotsViewController.handleRefresh(_:)), for: UIControlEvents.valueChanged) 
    refreshControl.tintColor = UIColor.lightGray 

    return refreshControl 
}() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    collectionView.addSubview(refreshControl) 
} 

我想把它稍微调低一点,但我迄今为止所做的一切都没有奏效。我尝试了以下。

refreshControl.frame = CGRect(x: refreshControl.frame.origin.x, 
           y: refreshControl.frame.origin.y - 50, 
           width: refreshControl.frame.size.width, 
           height: refreshControl.frame.size.height) 

我也有对谷歌看看,但所有的答案都在客观C.

我想的编程方式添加约束,但感觉不正确。

+0

你在哪里设置这个框架在你的代码中,在哪个函数中? – 3stud1ant3

+0

在ViewDidLoad()中。我简化了上面的ViewDidLoad函数 –

+0

试试这个代码:'refreshControl.frame = refreshControl.frame.offsetBy(dx:0,dy:-50)' – 3stud1ant3

回答

0

您应该为它使用自动布局约束或在-viewDidLayoutSubviews中更新其框架。