From a268a726bb74bc0f93baacf1a45e90391748954f Mon Sep 17 00:00:00 2001
From: Max Sokolov
Date: Sun, 15 Nov 2015 19:29:30 +0300
Subject: [PATCH] readme updated
---
README.md | 11 ++++++-----
Tablet.podspec | 2 +-
.../UserInterfaceState.xcuserstate | Bin 25546 -> 25548 bytes
TabletDemo/TabletDemo/ViewController.swift | 2 +-
4 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 23d35e5..d23abe9 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
-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.
+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:
```swift
@@ -89,7 +89,7 @@ Once you've implemented the protocol, simply use the `TableConfigurableRowBuilde
```swift
import Tablet
-let rowBuilder = TableConfigurableRowBuilder()
+let rowBuilder = TableConfigurableRowBuilder(estimatedRowHeight: 42)
rowBuilder.appendItems(users)
director = TableDirector(tableView: tableView)
@@ -159,17 +159,18 @@ extension TableDirector {
public func tableView(tableView: UITableView, didEndDisplayingCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
- performAction(.custom(kTableDirectordidEndDisplayingCell), cell: cell, indexPath: indexPath)
+ performAction(.custom(kTableDirectorDidEndDisplayingCell), cell: cell, indexPath: indexPath)
}
}
```
Catch your action with row builder:
```swift
-let rowBuilder = TableConfigurableRowBuilder(items: users)
- .action(kTableDirectordidEndDisplayingCell) { data in
+let rowBuilder = TableConfigurableRowBuilder(items: users, estimatedRowHeight: 42)
+ .action(kTableDirectorDidEndDisplayingCell) { data in
}
```
+You could also perform an action that returns a value.
## License
diff --git a/Tablet.podspec b/Tablet.podspec
index 5d4d01f..de7a9f9 100644
--- a/Tablet.podspec
+++ b/Tablet.podspec
@@ -3,7 +3,7 @@ Pod::Spec.new do |s|
s.version = '0.1.0'
s.homepage = 'https://github.com/maxsokolov/tablet'
- s.summary = 'Tablet is a super lightweight yet powerful Swift library that handles a complexity of UITableView's datasource and delegate.'
+ s.summary = 'Powerful type-safe tool for UITableView. Swift 2.0 is required.'
s.author = { 'Max Sokolov' => 'i@maxsokolov.net' }
s.license = { :type => 'MIT', :file => 'LICENSE' }
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 fe7b4a04a38e9e02e3850aadfc1a2659c7d4146f..37a26d591729787b08719fcdb0e923493a543e62 100644
GIT binary patch
delta 4484
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
delta 4567
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
ferbL<|NZ Void in
- data.cell!.contentLabel.text = "With iOS 8, Apple has internalized much of the work that previously had to be implemented by you prior to iOS 8. In order to allow the self-sizing cell mechanism to work, you must first set the rowHeight property on the table view to the constant UITableViewAutomaticDimension. Then, you simply need to enable row height estimation by setting the table view's estimatedRowHeight property to a nonzero value, for example"
+ data.cell!.contentLabel.text = "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."
}
let sectionBuilder = TableSectionBuilder(headerTitle: "Tablet", footerTitle: "Deal with table view like a boss.", rowBuilders: [rowBuilder, configurableRowBuilder])