ios - 每个 Cell 需要有一个部分 - Parse 和 Swift

标签 ios swift uitableview parse-platform

我正在使用 Parse.com 在我的应用程序上实现 Feed,基本上我正在填充 UITableViewController 并且一切正常,但是,我真的很喜欢 Instagram 的方式,看起来就像 Instagram每个单元格内都有一个 UIView,其工作方式类似于 header 并且该 View 跟随滚动直到单元格末尾,我尝试搜索它,但没有成功,经过一些研究后我意识到这个功能同样是一个部分,所以我决定在我的查询中实现部分,我已经实现了下面的代码:

import UIKit




class FeedTableViewController: PFQueryTableViewController {

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    loadCollectionViewData()

}


func loadCollectionViewData() {

    // Build a parse query object
    let query = PFQuery(className:"Feed")

    // Check to see if there is a search term


    // Fetch data from the parse platform
    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in

        // The find succeeded now rocess the found objects into the countries array
        if error == nil {

             print(objects!.count)
            // reload our data into the collection view


        } else {
            // Log details of the failure

    }
}
}



// Initialise the PFQueryTable tableview
override init(style: UITableViewStyle, className: String!) {
    super.init(style: style, className: className)
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!

    // Configure the PFQueryTableView
    self.parseClassName = "Feed"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = false
}

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return objects!.count
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}


override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return "Section \(section)"
}

//override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
    var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! FeedTableViewCell!
    if cell == nil {
        cell = FeedTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
    }
    cell.anuncerPhoto.layer.cornerRadius = cell.anuncerPhoto.frame.size.width / 2
    cell.anuncerPhoto.clipsToBounds = true

    // Extract values from the PFObject to display in the table cell
    if let nameEnglish = object?["name"] as? String {
        cell?.title?.text = nameEnglish

    }

    let thumbnail = object?["Photo"] as! PFFile
    let initialThumbnail = UIImage(named: "loadingImage")
    cell.photoImage.image = initialThumbnail
    cell.photoImage.file = thumbnail
    cell.photoImage.loadInBackground()

    return cell
}  
}

基本上,我需要为每个单元格设置一个部分,现在我成功地为每个单元格设置了一个部分,但问题是查询在第一篇文章中重复。

在后端,我有 3 个不同的帖子,因此,在应用程序中,UItableview 需要有 3 个具有不同内容的帖子,通过上面的代码,我成功地计算了帖子的数量,以了解我需要多少个部分并且我声明我想要每个部分一篇文章,但应用程序显示 3 个部分,其中第一篇文章相同。

如果我掌握了 Instagram 功能的正确概念以及为什么我在查询中遇到此问题,您有什么想法吗?

谢谢。

最佳答案

保留原来的 UITableViewDataSource 方法并使用 indexPath.section 检索当前对象

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! FeedTableViewCell!
    if cell == nil {
        cell = FeedTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
    }
    cell.anuncerPhoto.layer.cornerRadius = cell.anuncerPhoto.frame.size.width / 2
    cell.anuncerPhoto.clipsToBounds = true


    let object = objects[indexPath.section]

    // Extract values from the PFObject to display in the table cell
    if let nameEnglish = object["name"] as? String {
        cell?.title?.text = nameEnglish

    }

    let thumbnail = object["Photo"] as! PFFile
    let initialThumbnail = UIImage(named: "loadingImage")
    cell.photoImage.image = initialThumbnail
    cell.photoImage.file = thumbnail
    cell.photoImage.loadInBackground()

    return cell
}  

关于ios - 每个 Cell 需要有一个部分 - Parse 和 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33529521/

相关文章:

ios - 针对特定 UITableViewCell 中的特定 UILabel

ios - 使用 PhoneGap 管理推送通知的平台

Swift:for 循环、搜索字典、从键设置变量

ios - UITableViewController 通过方法添加项目

ios - 在 iOS 8 共享扩展和主应用程序之间共享数据

ios - 无法从 pod 库加载资源

swift - 当模态视图(第二个 VC)关闭时刷新 ViewController 中的核心数据

IOS 以编程方式将应用程序移动到主屏幕的文件夹中

objective-c - 如何更改导航栏背景

android - Ionic/HTML5 - 十进制键盘输入?