Swift 3 tableView의 다른 등록 cell

1579 단어
이전에 OC에서 셀을 등록한 UItableView의 분류를 봉인했는데 프로젝트에서 매우 순조롭게 사용되었는데 오늘은 약간의 시간을 들여 Swift로 옮겼다.잔말 말고 바로 코드에 올리세요. 초학이니까 Any Class, 어떤 느낌표도 다 헛수고예요. 잘못된 점은 바로잡아 주세요.
코드의 역할
  • 예전에 셀을 등록했을 때 이랬어요
  • private static let defaultCellidentifier = String(describing: UITableViewCell.self)
    private static let testCellidentifier = String(describing: TestTableViewCell.self)
    tableView.register(UITableViewCell.self, forCellReuseIdentifier:HomeViewController.defaultCellidentifier);
    tableView.register(UINib.init(nibName: "TestTableViewCell", bundle: nil), forCellReuseIdentifier: HomeViewController.testCellidentifier);
    
  • 현재 등록cell은 이렇습니다
  • tableView.registerCell(cellTypes: [UITableViewCell.self,TestTableViewCell.self])
    
  • tableView 프록시 방법에서cell
  • 재사용
    let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: TestTableViewCell.self), for: indexPath)
    

    다음은 분류된 실현 코드이다
    import Foundation
    import UIKit
    
    extension UITableView{
        func registerCell(cellTypes:[AnyClass]){
            for cellType in cellTypes {
                let typeString = String(describing: cellType)
                let xibPath = Bundle.init(for: cellType).path(forResource: typeString, ofType: "nib")
                if xibPath==nil {
                    self.register(cellType, forCellReuseIdentifier: typeString);
                }
                else{
                    self.register(UINib.init(nibName: typeString, bundle: nil), forCellReuseIdentifier: typeString)
                }
            }
        }
    }
    

    좋은 웹페이지 즐겨찾기