如果同时在一个画面实作两个UICollectionView
以下面的程式为例,这是一个可正常执行的的collectionView
class ViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource {
var m_collectionView:UICollectionView!
var m_layout:UICollectionViewFlowLayout!
func refreshWithFrame(frame:CGRect){
self.view.frame = frame
self.view.backgroundColor = UIColor.lightGrayColor()
m_layout = UICollectionViewFlowLayout()
m_layout.minimumLineSpacing = 1.5
m_layout.minimumInteritemSpacing = 1
m_collectionView = UICollectionView(frame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height), collectionViewLayout: m_layout)
m_collectionView.backgroundColor = UIColor.whiteColor()
m_collectionView.delegate = self
m_collectionView.dataSource = self
m_collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "TESTCell")
self.view.addSubview(m_collectionView)
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
/*func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
var reuseView:UICollectionReusableView!
reuseView = collectionView.dequeueReusableSupplementaryViewOfKind(UICollectionElementKindSectionHeader, withReuseIdentifier: "TestHeader", forIndexPath: indexPath)
reuseView.backgroundColor = UIColor.blackColor()
return reuseView
} */
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
var cell = collectionView.dequeueReusableCellWithReuseIdentifier("TESTCell", forIndexPath: indexPath)
cell.backgroundColor = UIColor.lightGrayColor()
return cell
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
//返回每个cell的大小
return CGSize(width: self.view.frame.size.width / 3 - 10, height:100)
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets{
return UIEdgeInsets(top:0, left: 0, bottom:5, right: 0)
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
//Cell点击事件
}
}
下面有几个一针对ColloectionView一定要的func
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets{
return UIEdgeInsets(top:0, left: 0, bottom:5, right: 0)
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
//Cell点击事件
}
我现在 需要2个,A=UIColloectionView(), 跟 B = UICollectionView()
那有关 memberofsectionCollectionview numberOfItemsInSection didSelectItemAtIndexPath
等几个都是不同的,那我该如何去实作两个collectionView呢??
请教各位先进....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
举例说明吧,简单的实现的话,可以类似下面这样:
复杂的话,也可能需要把 A,B 两个 collection view 的 datasource 和 delegate 都设置为单独的类,不一定都要设置成当前的 view controller 的。