swift - 我一直没办法解决的 实作collectionView
本文介绍了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屋!
查看全文