[IOS]swift自定義uicollectionviewcell


剛剛接觸swift以及ios,不是很理解有的邏輯,導致某些問題。這里分享一下swift自定義uicollectionviewcell

首先我的viewcontroller不是直接繼承uicollectionviewcontroller,而是添加的uicollectionview到我的storyboard,

然后再新建一個swift的文件,讓這個swift繼承uicollectionviewcell

import Foundation

class SVGCell :UICollectionViewCell{   
    convenience   required   init(coder : NSCoder){
        self.init(frame:CGRect(x: 0, y: 0, width: 50, height: 50))
    }   
//    required init(coder: NSCoder) {
//        fatalError("NSCoding not supported")
//    }
    override  init(frame: CGRect) {
        super.init(frame: frame)
    }
//about Inheritance
    //http://stackoverflow.com/questions/25126295/swift-class-does-not-implement-its-superclasss-required-members
}

這里繼承UICollectionViewCell的時候需要復寫 一個父類初始化方法,以及一個required的初始化方法,上面的一個鏈接是關於這個required的方法的一個說明,是新的版本所必須的,否則會報語法錯誤,錯誤內容大概是要求你實現一個required方法。

這里不能夠寫一個自定義的初始化,因為這個cell不是因為init所創建的。

然后回到我們的viewcontroller

import UIKit


class ViewController: UIViewController ,UICollectionViewDataSource,UICollectionViewDelegate {//繼承后面這兩個協議,需要使用collectionview所必須的然后可以復寫下面的三個必須的方法
    
  @IBOutlet weak var svgcollection: UICollectionView!

    let reuseidentifier="SVGCell"

  func collectionView(collectionView: UICollectionView!, numberOfItemsInSection section: Int) -> Int {
        return 2
    }//這3個func在繼承了datasource & delegate一定要重寫,如果有多個tableview 或者collection view 則在里面使用判斷,對參數collectionview判斷
    
    
    func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
        
        var cell:SVGCell=svgcollection.dequeueReusableCellWithReuseIdentifier(reuseidentifier, forIndexPath: indexPath) as SVGCell
        //reuse
      
        //這里這個cell不需要初始化
        //在return 之前 構造 一個cell 這里如果再次初始化的話,會導致uncatch的exception,內容大概是沒有 reuseidentifier
        return cell
    }//
    
     func numberOfSectionsInCollectionView(collectionView: UICollectionView!) -> Int {
        return 1
    }//

在添加到我們的storyboard的uicollectionview的里面

這個欄目里面的cell設置它的屬性

設置好Identifier屬性就基本完成了,接下來可以在自定義的uiviewcollectionCell的類里面寫自己需要的代碼了。

 

 

另外需要更新這個uicollectionview的時候,只需要使用這個view的 reload方法就可以重新加載,修改需要加載的內容就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM