메인 컨트롤러에 기본 메뉴를 설정한다.
기본적인 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 |