簡體   English   中英

將DynamoDB提取的表數據分類為集合視圖單元格

[英]Categorize DynamoDB fetched table data for collection view cells

我正在使用一個服務應用程序,其中用戶創建一個帖子,其詳細信息保存在dynamoDb表中。 我已經獲取了表中的所有數據,現在我想在集合視圖控制器中顯示數據,以便每個單元格代表一個帖子。 現在,我不確定如何將每個帖子與該數據分開,並將其提供給集合視圖。 我的表字段是: Table_Screenshot

我的代碼是:

import UIKit
import AWSDynamoDB

class ProvidingViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {

    @IBOutlet weak var PCV: UICollectionView!
    let db = AWSDynamoDBObjectMapper.default()
    let scanExpression = AWSDynamoDBScanExpression()
    var counter:Int = 0

     var imagex = ["UserIcon.png", "chat2.png","UserIcon.png", "delete.png","UserIcon.png", "delete.png","UserIcon.png", "delete.png","UserIcon.png", "delete.png","UserIcon.png", "delete.png"]

    var images:[String] = []

    override func viewDidLoad() {
        super.viewDidLoad()
        scanner()

    }
    ///
    func scanner(){

        scanExpression.limit = 2000

        db.scan(PostDetails.self, expression: scanExpression).continueWith(block: { (task:AWSTask!) -> AnyObject! in

            if task.result != nil {
                let paginatedOutput = task.result!

                //use the results
                for item in paginatedOutput.items as! [PostDetails] {
                     self.counter = paginatedOutput.items.count
                      self.images.append(item.userId!)


                }

                if ((task.error) != nil) {
                    print("Error: Could not fetch PostDetails table data")
                }
                return nil

            }

            return nil
        })

    }

    ///

    func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 1
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return images.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        let cell = PCV.dequeueReusableCell(withReuseIdentifier: "c", for: indexPath) as! CellsCollectionViewCell
        cell.ProvImage.image = UIImage(named: imagex[indexPath.row])
        cell.ProvLabel.text = images[indexPath.row]
        return cell


    }


}

我在其中獲取數據的圖像數組。 當我打印出數組時,它具有數據,但是當我將其分配給集合視圖控制器時,屏幕顯示為空,即沒有單元格。 請幫忙。 謝謝

您面臨的真正問題是,當View加載images數組為空並且CollectionView加載為空時,並且當您在掃描儀方法中將圖像加載到數組中時,您沒有為CollectionView調用reloadData ,這就是為什么您看不到任何內容的原因將數據加載到數組中后,在CollectionView 我正在更新您的掃描儀方法,請嘗試使用此方法,它將起作用。

func scanner(){

    scanExpression.limit = 2000

    db.scan(PostDetails.self, expression: scanExpression).continueWith(block: { (task:AWSTask!) -> AnyObject! in

        if task.result != nil {
            let paginatedOutput = task.result!

            //use the results
            for item in paginatedOutput.items as! [PostDetails] {
                 self.counter = paginatedOutput.items.count
                  self.images.append(item.userId!)


            }
            //This line is important because it tells collectionview that i have new data so please refresh.
            PCV.reloadData()
            if ((task.error) != nil) {
                print("Error: Could not fetch PostDetails table data")
            }
            return nil

        }

        return nil
    })

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM