首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ViewController的UICollectionView中拉动以刷新

在ViewController的UICollectionView中拉动以刷新
EN

Stack Overflow用户
提问于 2016-02-12 20:15:31
回答 6查看 38K关注 0票数 36

我在一个UICollectionViewController

代码语言:javascript
复制
override func viewDidLoad() {            

    self.collectionView!.alwaysBounceVertical = true
    let refresher = UIRefreshControl()
    refresher.addTarget(self, action: "refreshStream", forControlEvents: .ValueChanged)

    refreshControl = refresher
    collectionView!.addSubview(refreshControl!)
}

func refreshStream() {

    print("refresh")
    self.collectionView?.reloadData()

    refreshControl?.endRefreshing()

}

现在我需要它与一个UICollectionView在一个UIViewController我用谷歌搜索了一个小时,但还是不能正常工作。我很感谢你的帮助。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-02-12 21:58:50

在故事板中,您需要使用Ctrl +从集合视图对象拖动,将集合视图链接到适当的控制器文件。它需要通过@IBOutlet链接。

此外,您应该在按住Ctrl键的同时从集合视图拖动到情节提要上的视图控制器对象,并选择Data Source和Delegate,以便正确链接集合视图。

如果这对你有帮助,或者我误解了你的情况,请告诉我。

票数 12
EN

Stack Overflow用户

发布于 2016-06-13 21:22:47

在调用action方法时更改了新的快速代码,您可以像这样重写

代码语言:javascript
复制
@IBOutlet weak var collectionView: UICollectionView!

var refresher:UIRefreshControl!

override func viewDidLoad() {

   super.viewDidLoad()

    self.refresher = UIRefreshControl()
    self.collectionView!.alwaysBounceVertical = true
    self.refresher.tintColor = UIColor.red
    self.refresher.addTarget(self, action: #selector(loadData), for: .valueChanged)
    self.collectionView!.addSubview(refresher)
}

func loadData() {
   self.collectionView!.refreshControl.beginRefreshing()
   //code to execute during refresher
       .
       .
       .
   stopRefresher()         //Call this to stop refresher
 }

func stopRefresher() {
   self.collectionView!.refreshControl.endRefreshing()
 }
票数 70
EN

Stack Overflow用户

发布于 2016-02-12 21:37:03

代码语言:javascript
复制
var refreshControl:UIRefreshControl!

override func viewDidLoad() {
    super.viewDidLoad()
      self.refreshControl = UIRefreshControl()
      self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
     self.refreshControl.addTarget(self, action: #selector(PricingPlansCollectionViewController.reload), for: .valueChanged)
      collectionView!.addSubview(refreshControl)
}

 func refresh(sender:AnyObject)
  {
    //DO 
  }
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35362440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档