From d0773704c4a26aadff80d54bd040f79677669a82 Mon Sep 17 00:00:00 2001
From: Max Sokolov
Date: Sun, 15 Nov 2015 16:43:01 +0300
Subject: [PATCH] readme updated
---
README.md | 21 +++++++++++++-----
.../UserInterfaceState.xcuserstate | Bin 26276 -> 26304 bytes
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index e047841..72ea91a 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,11 @@

+
+
+
+
+
+
Tablet is a super lightweight yet powerful generic library that handles a complexity of UITableView's datasource and delegate methods in a Swift environment. Tablet's goal is to provide an easiest way to create complex table views. With Tablet you don't have to write a messy code of switch or if statements when you deal with bunch of different cells in different sections.
That's almost all you need in your controller to build a bunch of cells in a section:
@@ -50,7 +56,7 @@ let rowBuilder = TableRowBuilder(items: [user1, user2, us
let sectionBuilder = TableSectionBuilder(headerTitle: "Users", rowBuilders: [rowBuilder])
-let director = TableDirector(tableView: tableView)
+director = TableDirector(tableView: tableView)
director.appendSections(sectionBuilder)
```
@@ -85,6 +91,7 @@ import Tablet
let rowBuilder = TableConfigurableRowBuilder()
rowBuilder.appendItems(users)
+director = TableDirector(tableView: tableView)
tableDirector.appendSection(TableSectionBuilder(rowBuilders: [rowBuilder]))
```
@@ -95,7 +102,7 @@ Tablet provides a chaining approach to handle actions from your cells:
```swift
import Tablet
-let rowBuilder = TableRowBuilder(items: [user1, user2, user3], id: "reusable_id")
+let rowBuilder = TableRowBuilder(items: [user1, user2, user3], id: "reusable_id")
.action(.configure) { data in
}
@@ -111,11 +118,13 @@ let rowBuilder = TableRowBuilder(items: [user1, user2, us
```swift
import Tablet
-class UserTableViewCell : UITableViewCell {
+let kMyAction = "action_key"
+
+class MyTableViewCell : UITableViewCell {
@IBAction func buttonClicked(sender: UIButton) {
- Action(key: "action_key", sender: self, userInfo: nil).trigger()
+ Action(key: kMyAction, sender: self, userInfo: nil).trigger()
}
}
```
@@ -123,14 +132,14 @@ And receive this actions with your row builder:
```swift
import Tablet
-let rowBuilder = TableRowBuilder(items: users, id: "reusable_id")
+let rowBuilder = TableConfigurableRowBuilder(items: users, id: "reusable_id", estimatedRowHeight: 42)
.action(.click) { data in
}
.action(.willDisplay) { data in
}
- .action("action_key") { data in
+ .action(kMyAction) { data in
}
```
diff --git a/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/maxsokolov.xcuserdatad/UserInterfaceState.xcuserstate b/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/maxsokolov.xcuserdatad/UserInterfaceState.xcuserstate
index 7cb6250b7ac308caaadbbd147c4f7405e31e9db6..066f0b0a4d703d999d3f99688b8d56aebb1f6a56 100644
GIT binary patch
delta 5676
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
T+wlttf;vW6)-nFCFYEVz*0nHM
delta 5497
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