swift - 我一直没办法解决的 实作collectionView

查看:96
本文介绍了swift - 我一直没办法解决的 实作collectionView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

小妹现要作一个类似以下的东西,结合一个scrollview 跟 collectionview ,我的scorllview是实作成功了,但collectview不管怎么弄都没办法成功显示,请教各位牛人

我的 code 如下,因为我不是用stroybord去定义 画面,上面的部份,网路的截取这方面都没问题,问题是下方的 collectview ,不知道是那里出错,总是有以下的错误讯息
我怕程式太长有关scrollview的地方我就不删掉了,只留有问题的collectionview

我怕程式太长有关scrollview的地方我就不删掉了,只留有问题的collectionview

   class ViewController: UIViewController ,UIScrollViewDelegate, UICollectionViewDelegate, UICollectionViewDataSource {
var banner_scrollView:UIScrollView!
var banner_pageControl:UIPageControl!
var promoList:UICollectionView!
var promoLayer:UICollectionViewFlowLayout!
   // var m_myImg:UIImageView!
var myImgAry:[UIImageView]=[]
var testURL:NSURL!
var postString:String = ""
let myFunc:MyClass! = MyClass()
let webURL:NSString = "http://xxxxx/banner/";
var webPhoto = Array<UIImageView>()
var bannerH:CGFloat = 0.0
var bannerW:CGFloat = 0.0
var pageViewW:CGFloat!
var pageViewH:CGFloat!
var pageView:UIView!
var horizontalBlank:CGFloat = 3.0  //畫面上每個可見大塊元件的上間格
var verticalBlank:CGFloat = 2.0
func refreshWithFrame(frame:CGRect){
    self.view.frame = frame
    self.view.backgroundColor = UIColor.lightGrayColor()
    
   
    
    //print(self.navigationItem.)
    banner_scrollView = UIScrollView()
    banner_scrollView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height / 6 + 70)
   ///下面這一段沒問題/////////////////////////////////////// 
    /*banner_scrollView.contentSize = CGSizeMake(self.view.frame.size.width , 0)
   
    testURL=NSURL(string:"http://xxxxx/ajax.php")
    let request = NSMutableURLRequest(URL:testURL);
    request.HTTPMethod = "POST"
   
    postString = "type=ios&locate=index"
    request.HTTPBody = try! postString.dataUsingEncoding(NSUTF8StringEncoding)
    pageViewW = self.view.frame.size.width;
    pageViewH = bannerH;
    
    
    
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in
        if error != nil {
            print("\(error)") 
            return
        }
        do {
            let myJSON:AnyObject? = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
            self.drawScreen(myJSON!)
        }
        catch {print(error)}
    }
    task.resume()*/
    
    
    
    
  
                  
    
}
func drawScreen(indexJSON:AnyObject){

    
    /////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    以下是我错误的地方,也是我一直没办法解决的 实作collectionView
     以下是我错误的地方,也是我一直没办法解决的 实作collectionView
      以下是我错误的地方,也是我一直没办法解决的 实作collectionView
    /////////////////////////////////////////////////////////////////

    promoList = UICollectionView(frame: CGRectMake(0, 80, self.view.frame.width , 50))
    promoList.backgroundColor = UIColor.whiteColor()
    promoList.delegate = self
    promoList.dataSource = self
    self.view.addSubview(promoList)

    
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let kDisplayCell_ID:String = "DispalyCellID"
    let cell:UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(kDisplayCell_ID, forIndexPath: indexPath)
    cell.backgroundColor = UIColor.redColor()
    return cell
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 3
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
  return 1
}


}

拜托拜托 救救小妹吧

error message:
2016-07-23 18:59:28.142 shopping[1182:31607] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'UICollectionView must be initialized with a non-nil layout parameter'

解决方案

layout空的,必须初始化,layout

这篇关于swift - 我一直没办法解决的 实作collectionView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆