从集合视图转换到表视图

时间:2015-08-19 07:28:51

标签: ios swift uitableview imageview uicollectionview

当我想从uicollectionview改为uitableview时,我有一个问题..

我在这个集合视图中有这个故事板,输出和代码 enter image description here

这是故事板,单元格有标识符“cell” (忽略标题部分......)

enter image description here

之类的输出
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]()
    var jsonObject: [String: AnyObject] = [String: AnyObject]()

    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 (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)
                }
            }
        }
    }

但是当我将其更改为表格视图时,会出现一些错误,例如这样 这里是故事板,其中“cell”标识符与之前相同 enter image description here

但输出不是一样的,它变成了这个enter image description here

为什么他们不会像以前那样出现(图片2) 和像这样的代码

class SummaryUITableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate {
    let reuseIdentifier = "Cell"
    @IBOutlet var myTableView: UITableView!
        var jsonObject: [String: AnyObject] = [String: AnyObject]()
        var items = NSMutableArray()
        var TableData:Array< String > = Array < String >()
        var arrayOfMenu: [ImageList] = [ImageList]()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.myTableView.delegate = self
        self.myTableView.dataSource = self
        self.setUpMenu()
        var curr:Array<Summarydata> = Array <Summarydata>()

        var temp:Summarydata = Summarydata()
        temp.bulan = "Agustus"
        temp.setFood(Nutritionmenu.data)

        curr.append(temp);
        var data = JSONSerializer.toJson(curr)
        println(data)
         NSLog("%d", items.count)
    }


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {



        let cell: SummaryUITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell") as! SummaryUITableViewCell


        var shortDate: String {
            let dateFormatter = NSDateFormatter()
            dateFormatter.dateFormat = "MMMM"
            return dateFormatter.stringFromDate(NSDate())
        }
        cell.setCell(shortDate)
                let image = UIImage(named: items.objectAtIndex(indexPath.row) as! String)
                let imageView = cell.viewWithTag(100) as! UIImageView
                imageView.image = image

        return cell
    }

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



        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 (var i = 0; i < json["Activity"].count; i++) {
                    if let icon: AnyObject = json["Activity"][i]["icon"].string {
                        self.items.addObject(icon)
                        var menu = ImageList(image: icon as! String)
                        self.arrayOfMenu.append(menu)
                        self.TableData.append(icon as! String)
                    }
                }
            }
        }



}


class SummaryUITableViewCell: UITableViewCell {
    @IBOutlet weak var lblUnit: UILabel!

    func setCell(lblUnit: String){
        self.lblUnit.text = lblUnit
    }


}

任何人都可以提供帮助吗?

0 个答案:

没有答案