daniel thang
daniel thang

Reputation: 69

how to add element under collection reusable view in collection view

enter image description here

i have a problem and confusing i want to ask how can i make a new object ( i want to make date ) under the icons, and under the date there's icon again.. like gallery on iPhone,

in example: august

(photos)

september

(photos)

and so on..thx will be looks like this, but how enter image description here there is my code in this view

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

}





}

Upvotes: 2

Views: 1416

Answers (1)

Bharat Nakum
Bharat Nakum

Reputation: 647

You can set number of sections to required number of months. Like this :

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

And for the menu, you need to give it according to section(month).

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 
    }

}

Hope this helps!

Upvotes: 1

Related Questions