我正在使用swift构建一个RSS阅读器,需要实现拉入重装功能.

这就是我想要做的.

class FirstViewController: UIViewController,
    UITableViewDelegate, UITableViewDataSource {

   @IBOutlet var refresh: UIScreenEdgePanGestureRecognizer
   @IBOutlet var newsCollect: UITableView

   var activityIndicator:UIActivityIndicatorView? = nil

   override func viewDidLoad() {
       super.viewDidLoad()
       self.newsCollect.scrollEnabled = true
      // Do any additional setup after loading the view, typically from a nib.

      if nCollect.news.count <= 2{
          self.collectNews()
       }
      else{
          self.removeActivityIndicator()
       }
      view.addGestureRecognizer(refresh)
   }



@IBAction func reload(sender: UIScreenEdgePanGestureRecognizer) {
    nCollect.news = News[]()
    return newsCollect.reloadData()
}

我得到:

属性"self.fresh"在super.init调用时未初始化

请帮助我了解手势识别者的行为.一个有效的样例代码将会有很大的帮助.

谢谢.

推荐答案

Pull to refresh内置在iOS中.你可以很快做到这一点,就像

let refreshControl = UIRefreshControl()

override func viewDidLoad() {
   super.viewDidLoad()

   refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
   refreshControl.addTarget(self, action: #selector(self.refresh(_:)), for: .valueChanged)
   tableView.addSubview(refreshControl) // not required when using UITableViewController
}

@objc func refresh(_ sender: AnyObject) {
   // Code to refresh table view  
}

在某个时刻,你可能会感到耳目一新.

refreshControl.endRefreshing()

Ios相关问答推荐

崩溃到初始化react -带网页的原生iOS应用程序

创建带有Flutter 翼的会所头像

在iOS 17脉冲符号效果不起作用的情况下制作UIBarButtonItem动画(没有UIImageView)

NSHashTable要求任何MyCustomProtocolAnyObject都是类类型

Flutter动画放大图

SwiftUI 菜单中的内联水平按钮

无法在 CollectionView 中禁用部分弹跳 - 组合布局

如何包含 Xcode 子项目标头?

检测 iPhone 应用程序中是否存在摄像头?

在iOS7半透明导航栏中获取正确的 colored颜色

UICollectionView 添加 UICollectionCell

在 Swift 中按下返回键时在文本字段之间切换

Swift 错误:在其自己的初始值中使用的变量

以编程方式获取故事板 ID?

iOS - 确保在主线程上执行

Xcode:此时无法安装此应用程序.

如何将自己项目中的类导入 Playground

如何使用 presentModalViewController 创建透明视图

xcode 5.1:libCordova.a 架构问题

NSURL 到带有 XCTest 的测试包中的文件路径