메인 컨트롤러에 기본 메뉴를 설정한다.
기본적인 view 구성도
view->tableview
1.먼저 tableview의 snapkit 만들기
view의 tableview를 추가하고 tableview의 snapkit 정해주기
tableview의 top,bottom,left,right를 view에 맞춰준다.
import UIKit
//snapkit
extension MainController {
  func initUI() {
    self.view.addSubview(self.tableView)
    view.setNeedsUpdateConstraints()
  }
  override func updateViewConstraints() {
    if (!didSetupConstraints) {
      tableView.snp.makeConstraints { make in
        make.edges.equalToSuperview()
      }
      didSetupConstraints = true
    }
    super.updateViewConstraints()
  }
}
2.tableview의 내용을 설정한다.
tableviewcell은 기본 UITableviewCell을 사용한다.
extension MainController: UITableViewDelegate, UITableViewDataSource {
  func goViewController(vc: UIViewController) {
    self.navigationController?.pushViewController(vc, animated: true)
  }
  public func initTableView() {
    self.tableView.dataSource = self
    self.tableView.delegate = self
    self.tableView.rowHeight = 44
    self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: self.cellName)
  }
  public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)
      -> Int {
    return menuList.count
  }
  public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
      -> UITableViewCell {
    let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: self.cellName)!
    cell.textLabel?.text = self.menuList[indexPath.row]
    return cell
  }
  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)
    var vc: UIViewController?
    if (indexPath.row == 0) {
      vc = View1Controller.instance()
    } else if (indexPath.row == 1) {
      vc = View2Controller.instance()
    } else if (indexPath.row == 2) {
      vc = View3Controller.instance()
    } else if (indexPath.row == 3) {
      vc = View4Controller.instance()
    } else if (indexPath.row == 4) {
      vc = View5Controller.instance()
    }
    if let _vc = vc {
      _vc.title = self.menuList[indexPath.row]
      self.goViewController(vc: _vc)
    }
  }
}
3.snapkit 함수와 tableview 함수를 호출한다.
class MainController: UIViewController {
  let cellName = "cell"
  var didSetupConstraints = false
  let menuList: [String] = ["1.View 가운데",
    "2.View 4등분",
    "3.Body,Footer 나누기",
    "4-1.TopLayoutGuide 없이",
    "4-2.TopLayoutGuide 추가"]
  let tableView: UITableView = {
    let tableView = UITableView()
    return tableView
  }()
  override func viewDidLoad() {
    super.viewDidLoad()
    self.initUI()
    self.initTableView()
  }
  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
  }
}
4.결과
https://github.com/choiks14/SnapkitTest
'swift > snapkit' 카테고리의 다른 글
| snapkit(6) (0) | 2017.06.25 | 
|---|---|
| snapkit(5) (0) | 2017.06.18 | 
| snapkit(4) (0) | 2017.06.18 | 
| snapkit(3) (0) | 2017.06.18 | 
| snapkit(1) (0) | 2017.06.18 |