tableview中的swift collectionview在collectionview中水平加载图像

时间:2015-11-14 09:19:00

标签: image swift uitableview uicollectionview

我需要在collectionview中的水平图像,它位于每个tableview单元格中。我面临的问题是tableview很容易加载,但是collectionview没有在tableview单元格之前加载,因为tableview加载非常快,因此collectionview的数组会被更改。

我用于整个视图的代码是 -

import UIKit
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout,NSURLConnectionDelegate {
    @IBOutlet var tbl_data: UITableView!

    var mutableData: NSMutableData!
    var response: NSURLResponse!
    var connection: NSURLConnection!


    var thedata:NSArray!

    var ary_OF_collectionView:NSArray!

    override func viewDidLoad() {
        super.viewDidLoad()
        connection_GetPeopleList()
        thedata = NSArray()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // Return the number of sections.
        return 1
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {


        return thedata.count

    }
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        //println("INdex===\(indexPath.row)")
        let cell = tableView.dequeueReusableCellWithIdentifier("dTableViewCell", forIndexPath: indexPath) as! dTableViewCell

        var c_snippet:String = ""

        if let checkC_snip:AnyObject = thedata.objectAtIndex(indexPath.row).valueForKey("c_snippet")
        {
            c_snippet =  checkC_snip as! String
        }

        var getImageArray:NSArray =  (thedata.objectAtIndex(indexPath.row).valueForKey("images") as? NSArray)!



        cell.lbl_like.text = c_snippet



        cell.co_v.tag = indexPath.row
        if(getImageArray.count > 0)
        {
            if(getImageArray.count == 1)
            {
                var getimagePath:String = getImageArray.objectAtIndex(0) as! String

                if(!getimagePath.isEmpty)
                {

                    ary_OF_collectionView = getImageArray

                }else
                {

                   ary_OF_collectionView = NSArray()

                }
            }else
            {
                 ary_OF_collectionView = getImageArray
            }
        }else
        {
               ary_OF_collectionView = NSArray()

        }




        cell.co_v.dataSource = self
        cell.co_v.delegate = self
        cell.co_v.reloadData()

        cell.selectionStyle = UITableViewCellSelectionStyle.None
        return cell
    }

    func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
        return 1
    }
    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
       return ary_OF_collectionView.count
    }
    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {


        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell
        var getImageUrl:String! = ary_OF_collectionView.objectAtIndex(indexPath.row) as! String
        println(getImageUrl)

        // This is image loader From == https://github.com/natelyman/SwiftImageLoader
        ImageLoader.sharedLoader.imageForUrl(getImageUrl, completionHandler:{(image: UIImage?, url: String) in
            cell.img.image = image
        })

        //cell.img.image = UIImage(named: ) as UIImage!
        return cell

        }
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
    {
        println("INinininin===\(indexPath.row)")

       // var cell:dTableViewCell = cell as! dTableViewCell

     //  [cell setCollectionViewDataSourceDelegate:self index:indexPath.row];

    }

     func scrollViewDidScroll(scrollView: UIScrollView) {

        println(scrollView)
    // println("INinininin===\(scrollView.tag)")

    }


    func connection_GetPeopleList()
    {





            let urlPath: String = "http://carbonchase.com/v1.1/get_jives.php?user_id=3221128362&at=0&newsfeeds&count=10"

            println("get_People List == \(urlPath)")

            var escapedAddress = urlPath.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
            var url: NSURL = NSURL(string: escapedAddress!)!
            var request1: NSURLRequest = NSURLRequest(URL: url)
            self.connection = NSURLConnection(request: request1, delegate: self, startImmediately: true);
            connection.start()

    }

    func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
        self.response = response
        self.mutableData = NSMutableData()
    }

    func connection(connection: NSURLConnection!, didReceiveData data: NSData!) {
        self.mutableData.appendData(data)
    }

    func connectionDidFinishLoading(connection: NSURLConnection!)
    {
        if let jsonResult: NSArray = NSJSONSerialization.JSONObjectWithData(self.mutableData, options: nil, error:nil) as? NSArray {
              thedata = jsonResult

            self.tbl_data.reloadData();
            self.tbl_data.delegate=self;
            self.tbl_data.dataSource=self;

        }

    }

    func connection(connection: NSURLConnection, didFailWithError error: NSError) {
        println("\(error)")

    }


}// END

EDITED

CollectionView无效

0 个答案:

没有答案