-
Notifications
You must be signed in to change notification settings - Fork 0
2. Quick Tutorial
iMoeNya edited this page Sep 29, 2019
·
1 revision
First of all, consider the Example project in this repository a best practice.
extension ViewController: TableEnumerated {
// ...
}
extension ViewController: TableEnumerated {
enum Section: Int, SectionEnumeration {
case user
case setting
}
}
extension ViewController: TableEnumerated {
enum UserRow: Int, RowEnumeration {
case avatar
case biography
var text: String? {
switch self {
case .avatar:
return "iMoe"
case .biography:
return "A developer."
}
}
var reuseIdentifier: String? {
switch self {
case .avatar:
return "Avatar Cell"
case .biography:
return "Cell"
}
}
}
enum RichTextRow: Int, RowEnumeration {
case row1
case row2
var text: String? {
switch self {
case .row1:
return "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
case .row2:
return "Ut enim ad minim veniam."
}
}
var reuseIdentifier: String? {
return "Rich Cell"
}
}
enum Section: Int, SectionEnumeration {
case user
case setting
var RowsInSection: RowEnumerated.Type {
switch self {
case .user:
return ViewController.UserRow.self
case .setting:
return ViewController.RichTextRow.self
}
}
}
extension ViewController: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return numberOfEnumeratedSections
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return numberOfEnumeratedRows(in: section)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return enumeratedCell(at: indexPath, inside: tableView)
}
}
Consider the repository a best practice.