如何在集合视图中的集合可重用视图下添加元素

时间:2015-08-11 09:07:45

标签: ios xcode swift uicollectionview collectionview

enter image description here

我有一个问题而且令人困惑我想问我怎样才能在图标下面制作一个新对象(我想要制作日期),并在日期之后再次显示图标..就像iPhone上的画廊一样,

示例: 八月

(张)

九月

(张)

依旧等等 将是这样的,但如何 enter image description here 这个视图中有我的代码

import UIKit

let reuseIdentifier = "Cell"

class SummaryViewController: UICollectionViewController, UICollectionViewDataSource, UICollectionViewDelegate {

    @IBOutlet var collectionview: UICollectionView!
    var photos:NSArray?
    var items = NSMutableArray()
    var TableData:Array< String > = Array < String >()
    var json:String = ""
    var arrayOfMenu: [ImageList] = [ImageList]()
    override func viewDidLoad() {
        super.viewDidLoad()
        self.setUpMenu()
        collectionview.dataSource = self
        collectionview.delegate = self


        NSLog("%d", items.count)

    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {

        return 1
    }


    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

        return arrayOfMenu.count //hitung banyak data pada array
    }

    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! UICollectionViewCell
        let image = UIImage(named: items.objectAtIndex(indexPath.row) as! String)
        let imageView = cell.viewWithTag(100) as! UIImageView
        imageView.image = image

        return cell
    }

    func setUpMenu() //membaca json pada setiap arraynya
    {
        var json: JSON = JSON (data: NSData())
        DataManager.getactivityDataFromFileWithSuccess{ (data) -> Void in
            json = JSON(data: data)
            let results = json["results"]
            for (index: String, subJson: JSON) in results {
            }
            for (var i = 0; i < json["Activity"].count; i++) {
                    if let icon: AnyObject = json["Activity"][i]["icon"].string {
                        self.items.addObject(icon)
                            dispatch_async(dispatch_get_main_queue(), {self.collectionView!.reloadData()})
                            var menu = ImageList(image: icon as! String)
                            self.arrayOfMenu.append(menu)
                            self.TableData.append(icon as! String)

                        }
                    }
                }
            }

override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView
{

    let header = collectionView.dequeueReusableSupplementaryViewOfKind(UICollectionElementKindSectionHeader, withReuseIdentifier: "headersection", forIndexPath: indexPath) as! UICollectionReusableView
    return header

}





}

1 个答案:

答案 0 :(得分:1)

您可以将部分数量设置为所需的月数。 像这样:

override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int 
{
    return 3
}

对于菜单,您需要根据部分(月份)给出它。

override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
    if section == 0
    {
       return arrayOfFirstMenu.count 
    }
    else if section == 1
    {
       return arrayOfSecondMenu.count 
    }
    else
    {
        return arrayOfThirdMenu.count 
    }

}

希望这有帮助!