diff --git a/Documentation/html/Classes/RETableViewManager.html b/Documentation/html/Classes/RETableViewManager.html new file mode 100644 index 0000000..aa39afc --- /dev/null +++ b/Documentation/html/Classes/RETableViewManager.html @@ -0,0 +1,468 @@ + + + + + RETableViewManager Class Reference + + + + + + + +
+
+

RETableViewManager

+ Roman Efimov +
+ + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toUITableViewDataSource
UITableViewDelegate
Declared inRETableViewManager.h
RETableViewManager.m
+ + + + +
+ +

Overview

+

Data driven content manager for UITableView. It allows to manage content of UITableView with ease, both forms and lists. +In its core RETableViewManager supports reusable cells based on corresponding data object class.

+
+ + + + + +
+ +

Tasks

+ + + +

Creating and Initializing a RETableViewManager

+ +
    +
  • + + – initWithDelegate: +

    Initialize a table view manager object and specify the delegate object.

    +
    + + +
  • +
+ + + +

Managing the Delegate

+ +
    +
  • + +   delegate +

    The object that acts as the delegate of the receiving table view.

    +
    + property + +
  • +
+ + + +

Managing Object Mappings

+ +
    +
  • + +   mapping +

    The aggregate collection of item and class mappings within this table view manager.

    +
    + property + +
  • +
+ +
+ + + + + +
+ +

Properties

+ +
+ +

delegate

+ + + +
+

The object that acts as the delegate of the receiving table view.

+
+ + + +
@property (assign, readwrite, nonatomic) id<RETableViewManagerDelegate> delegate
+ + + + + + + + + +
+

Discussion

+

The object that acts as the delegate of the receiving table view.

+
+ + + + + + + +
+

Declared In

+ RETableViewManager.h
+
+ + +
+ +
+ +

mapping

+ + + +
+

The aggregate collection of item and class mappings within this table view manager.

+
+ + + +
@property (strong, readwrite, nonatomic) NSMutableDictionary *mapping
+ + + + + + + + + +
+

Discussion

+

The aggregate collection of item and class mappings within this table view manager.

+
+ + + + + + + +
+

Declared In

+ RETableViewManager.h
+
+ + +
+ +
+ + + + + +
+ +

Instance Methods

+ +
+ +

initWithDelegate:

+ + + +
+

Initialize a table view manager object and specify the delegate object.

+
+ + + +
- (id)initWithDelegate:(id<RETableViewManagerDelegate>)delegate
+ + + +
+

Parameters

+ +
+
delegate
+

The delegate (RETableViewManagerDelegate) object for the table view manager.

+
+ +
+ + + +
+

Return Value

+

The pointer to the instance, or nil if initialization failed.

+
+ + + + + +
+

Discussion

+

Initialize a table view manager object and specify the delegate object.

+
+ + + + + + + +
+

Declared In

+ RETableViewManager.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/Documentation/html/Classes/RETableViewSection.html b/Documentation/html/Classes/RETableViewSection.html new file mode 100644 index 0000000..1c9efb6 --- /dev/null +++ b/Documentation/html/Classes/RETableViewSection.html @@ -0,0 +1,1244 @@ + + + + + RETableViewSection Class Reference + + + + + + + +
+
+

RETableViewManager

+ Roman Efimov +
+ + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Inherits fromNSObject
Declared inRETableViewSection.h
RETableViewSection.m
+ + + + +
+ +

Overview

+

Table view section.

+
+ + + + + +
+ +

Tasks

+ + + +

Other Methods

+ +
    +
  • + +   items +

    An array of section items (rows).

    +
    + property + +
  • + +   headerTitle +

    The title of the header of the specified section of the table view

    +
    + property + +
  • + +   footerTitle +

    The title of the footer of the specified section of the table view

    +
    + property + +
  • + +   headerView +

    A view object to display in the header of the specified section of the table view.

    +
    + property + +
  • + +   footerView +

    A view object to display in the footer of the specified section of the table view.

    +
    + property + +
  • +
+ + + +

Creating and Initializing a RETableViewSection

+ + + + + +

Adding Items

+ + + +
+ + + + + +
+ +

Properties

+ +
+ +

footerTitle

+ + + +
+

The title of the footer of the specified section of the table view

+
+ + + +
@property (copy, readwrite, nonatomic) NSString *footerTitle
+ + + + + + + + + +
+

Discussion

+

The title of the footer of the specified section of the table view

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

footerView

+ + + +
+

A view object to display in the footer of the specified section of the table view.

+
+ + + +
@property (strong, readwrite, nonatomic) UIView *footerView
+ + + + + + + + + +
+

Discussion

+

A view object to display in the footer of the specified section of the table view.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

headerTitle

+ + + +
+

The title of the header of the specified section of the table view

+
+ + + +
@property (copy, readwrite, nonatomic) NSString *headerTitle
+ + + + + + + + + +
+

Discussion

+

The title of the header of the specified section of the table view

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

headerView

+ + + +
+

A view object to display in the header of the specified section of the table view.

+
+ + + +
@property (strong, readwrite, nonatomic) UIView *headerView
+ + + + + + + + + +
+

Discussion

+

A view object to display in the header of the specified section of the table view.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

items

+ + + +
+

An array of section items (rows).

+
+ + + +
@property (strong, readwrite, nonatomic) NSMutableArray *items
+ + + + + + + + + +
+

Discussion

+

An array of section items (rows).

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ + + +
+ +

Class Methods

+ +
+ +

section

+ + + +
+

Creates and returns a new section.

+
+ + + +
+ (id)section
+ + + + + +
+

Return Value

+

A new section.

+
+ + + + + +
+

Discussion

+

Creates and returns a new section.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

sectionWithHeaderTitle:

+ + + +
+

Creates and returns a new section with predefined header title.

+
+ + + +
+ (id)sectionWithHeaderTitle:(NSString *)headerTitle
+ + + +
+

Parameters

+ +
+
headerTitle
+

A header title.

+
+ +
+ + + +
+

Return Value

+

A new section with defined header title.

+
+ + + + + +
+

Discussion

+

Creates and returns a new section with predefined header title.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

sectionWithHeaderTitle:footerTitle:

+ + + +
+

Creates and returns a new section with predefined header and footer titles.

+
+ + + +
+ (id)sectionWithHeaderTitle:(NSString *)headerTitle footerTitle:(NSString *)footerTitle
+ + + +
+

Parameters

+ +
+
headerTitle
+

A header title.

+
+ +
+
footerTitle
+

A footer title.

+
+ +
+ + + +
+

Return Value

+

A new section with header and footer titles.

+
+ + + + + +
+

Discussion

+

Creates and returns a new section with predefined header and footer titles.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

sectionWithHeaderView:

+ + + +
+

Creates and returns a new section containing a header view.

+
+ + + +
+ (id)sectionWithHeaderView:(UIView *)headerView
+ + + +
+

Parameters

+ +
+
headerView
+

A header view.

+
+ +
+ + + +
+

Return Value

+

A new section containing a header view.

+
+ + + + + +
+

Discussion

+

Creates and returns a new section containing a header view.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

sectionWithHeaderView:footerView:

+ + + +
+

Creates and returns a new section containing header and footer views.

+
+ + + +
+ (id)sectionWithHeaderView:(UIView *)headerView footerView:(UIView *)footerView
+ + + +
+

Parameters

+ +
+
headerView
+

A header view.

+
+ +
+
footerView
+

A footer view.

+
+ +
+ + + +
+

Return Value

+

A new section containing header and footer views.

+
+ + + + + +
+

Discussion

+

Creates and returns a new section containing header and footer views.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ + + +
+ +

Instance Methods

+ +
+ +

addItem:

+ + + +
+

Inserts a given item at the end of the items array.

+
+ + + +
- (id)addItem:(id)item
+ + + +
+

Parameters

+ +
+
item
+

The item to add to the end of the items array’s content. This value must not be nil.

+
+ +
+ + + +
+

Return Value

+

The item.

+
+ + + + + +
+

Discussion

+

Inserts a given item at the end of the items array.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

initWithHeaderTitle:

+ + + +
+

Initializes a newly allocated section and sets header title.

+
+ + + +
- (id)initWithHeaderTitle:(NSString *)headerTitle
+ + + +
+

Parameters

+ +
+
headerTitle
+

A header title.

+
+ +
+ + + +
+

Return Value

+

A new section initialized with a header title.

+
+ + + + + +
+

Discussion

+

Initializes a newly allocated section and sets header title.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

initWithHeaderTitle:footerTitle:

+ + + +
+

Initializes a newly allocated section with header and footer titles.

+
+ + + +
- (id)initWithHeaderTitle:(NSString *)headerTitle footerTitle:(NSString *)footerTitle
+ + + +
+

Parameters

+ +
+
headerTitle
+

A header title.

+
+ +
+
footerTitle
+

A footer title.

+
+ +
+ + + +
+

Return Value

+

A new section initialized with header and footer titles.

+
+ + + + + +
+

Discussion

+

Initializes a newly allocated section with header and footer titles.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

initWithHeaderView:

+ + + +
+

Initializes a newly allocated section containing a header view.

+
+ + + +
- (id)initWithHeaderView:(UIView *)headerView
+ + + +
+

Parameters

+ +
+
headerView
+

A header view.

+
+ +
+ + + +
+

Return Value

+

A new section initialized containing a header view.

+
+ + + + + +
+

Discussion

+

Initializes a newly allocated section containing a header view.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ +

initWithHeaderView:footerView:

+ + + +
+

Initializes a newly allocated section containing header and footer views.

+
+ + + +
- (id)initWithHeaderView:(UIView *)headerView footerView:(UIView *)footerView
+ + + +
+

Parameters

+ +
+
headerView
+

A header view.

+
+ +
+
footerView
+

A footer view.

+
+ +
+ + + +
+

Return Value

+

A new section initialized with header and footer views.

+
+ + + + + +
+

Discussion

+

Initializes a newly allocated section containing header and footer views.

+
+ + + + + + + +
+

Declared In

+ RETableViewSection.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/Documentation/html/css/styles.css b/Documentation/html/css/styles.css new file mode 100755 index 0000000..bf946c0 --- /dev/null +++ b/Documentation/html/css/styles.css @@ -0,0 +1,584 @@ +body { + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + font-size: 13px; +} + +code { + font-family: Courier, Consolas, monospace; + font-size: 13px; + color: #666; +} + +pre { + font-family: Courier, Consolas, monospace; + font-size: 13px; + line-height: 18px; + tab-interval: 0.5em; + border: 1px solid #C7CFD5; + background-color: #F1F5F9; + color: #666; + padding: 0.3em 1em; +} + +ul { + list-style-type: square; +} + +li { + margin-bottom: 10px; +} + +a, a code { + text-decoration: none; + color: #36C; +} + +a:hover, a:hover code { + text-decoration: underline; + color: #36C; +} + +h2 { + border-bottom: 1px solid #8391A8; + color: #3C4C6C; + font-size: 187%; + font-weight: normal; + margin-top: 1.75em; + padding-bottom: 2px; +} + +table { + margin-bottom: 4em; + border-collapse:collapse; + vertical-align: middle; +} + +td { + border: 1px solid #9BB3CD; + padding: .667em; + font-size: 100%; +} + +th { + border: 1px solid #9BB3CD; + padding: .3em .667em .3em .667em; + background: #93A5BB; + font-size: 103%; + font-weight: bold; + color: white; + text-align: left; +} + +/* @group Common page elements */ + +#top_header { + height: 91px; + left: 0; + min-width: 598px; + position: absolute; + right: 0; + top: 0; + z-index: 900; +} + +#footer { + clear: both; + padding-top: 20px; + text-align: center; +} + +#contents, #overview_contents { + -webkit-overflow-scrolling: touch; + border-top: 1px solid #2B334F; + position: absolute; + top: 91px; + left: 0; + right: 0; + bottom: 0; + overflow-x: hidden; + overflow-y: auto; + padding-left: 2em; + padding-right: 2em; + padding-top: 1em; + min-width: 550px; +} + +#contents.isShowingTOC { + left: 230px; + min-width: 320px; +} + +.copyright { + font-size: 12px; +} + +.generator { + font-size: 11px; +} + +.main-navigation ul li { + display: inline; + margin-left: 15px; + list-style: none; +} + +.navigation-top { + clear: both; + float: right; +} + +.navigation-bottom { + clear: both; + float: right; + margin-top: 20px; + margin-bottom: -10px; +} + +.open > .disclosure { + background-image: url("../img/disclosure_open.png"); +} + +.disclosure { + background: url("../img/disclosure.png") no-repeat scroll 0 0; +} + +.disclosure, .nodisclosure { + display: inline-block; + height: 8px; + margin-right: 5px; + position: relative; + width: 9px; +} + +/* @end */ + +/* @group Header */ + +#top_header #library { + background: url("../img/library_background.png") repeat-x 0 0 #485E78; + background-color: #ccc; + height: 35px; + font-size: 115%; +} + +#top_header #library #libraryTitle { + color: #FFFFFF; + margin-left: 15px; + text-shadow: 0 -1px 0 #485E78; + top: 8px; + position: absolute; +} + +#top_header #library #developerHome { + color: #92979E; + right: 15px; + top: 8px; + position: absolute; +} + +#top_header #library a:hover { + text-decoration: none; +} + +#top_header #title { + background: url("../img/title_background.png") repeat-x 0 0 #8A98A9; + border-bottom: 1px solid #B6B6B6; + height: 25px; + overflow: hidden; +} + +#top_header h1 { + font-size: 115%; + font-weight: normal; + margin: 0; + padding: 3px 0 2px; + text-align: center; + text-shadow: 0 1px 0 #D5D5D5; + white-space: nowrap; +} + +#headerButtons { + background-color: #D8D8D8; + background-image: url("../img/button_bar_background.png"); + border-bottom: 1px solid #EDEDED; + border-top: 1px solid #2B334F; + font-size: 8pt; + height: 28px; + left: 0; + list-style: none outside none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + right: 0; + top: 61px; +} + +#headerButtons li { + background-repeat: no-repeat; + display: inline; + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +#toc_button button { + border-color: #ACACAC; + border-style: none solid none none; + border-width: 0 1px 0 0; + height: 28px; + margin: 0; + padding-left: 30px; + text-align: left; + width: 230px; +} + +li#jumpto_button { + left: 230px; + margin-left: 0; + position: absolute; +} + +li#jumpto_button select { + height: 22px; + margin: 5px 2px 0 10px; + max-width: 300px; +} + +/* @end */ + +/* @group Table of contents */ + +#tocContainer.isShowingTOC { + border-right: 1px solid #ACACAC; + display: block; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} + +#tocContainer { + background-color: #E4EBF7; + border-top: 1px solid #2B334F; + bottom: 0; + display: none; + left: 0; + overflow: hidden; + position: absolute; + top: 91px; + width: 229px; +} + +#tocContainer > ul#toc { + font-size: 11px; + margin: 0; + padding: 12px 0 18px; + width: 209px; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; +} + +#tocContainer > ul#toc > li { + margin: 0; + padding: 0 0 7px 30px; + text-indent: -15px; +} + +#tocContainer > ul#toc > li > .sectionName a { + color: #000000; + font-weight: bold; +} + +#tocContainer > ul#toc > li > .sectionName a:hover { + text-decoration: none; +} + +#tocContainer > ul#toc li.children > ul { + display: none; + height: 0; +} + +#tocContainer > ul#toc > li > ul { + margin: 0; + padding: 0; +} + +#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li { + margin-left: 0; + margin-bottom: 0; + padding-left: 15px; +} + +#tocContainer > ul#toc > li ul { + list-style: none; + margin-right: 0; + padding-right: 0; +} + +#tocContainer > ul#toc li.children.open > ul { + display: block; + height: auto; + margin-left: -15px; + padding-left: 0; +} + +#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li { + margin-left: 0; + padding-left: 15px; +} + +#tocContainer li ul li { + margin-top: 0.583em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +#tocContainer li ul li span.sectionName { + white-space: normal; +} + +#tocContainer > ul#toc > li > ul > li > .sectionName a { + font-weight: bold; +} + +#tocContainer > ul#toc > li > ul a { + color: #4F4F4F; +} + +/* @end */ + +/* @group Index formatting */ + +.index-title { + font-size: 13px; + font-weight: normal; +} + +.index-column { + float: left; + width: 30%; + min-width: 200px; + font-size: 11px; +} + +.index-column ul { + margin: 8px 0 0 0; + padding: 0; + list-style: none; +} + +.index-column ul li { + margin: 0 0 3px 0; + padding: 0; +} + +.hierarchy-column { + min-width: 400px; +} + +.hierarchy-column ul { + margin: 3px 0 0 15px; +} + +.hierarchy-column ul li { + list-style-type: square; +} + +/* @end */ + +/* @group Common formatting elements */ + +.title { + font-weight: normal; + font-size: 215%; + margin-top:0; +} + +.subtitle { + font-weight: normal; + font-size: 180%; + color: #3C4C6C; + border-bottom: 1px solid #5088C5; +} + +.subsubtitle { + font-weight: normal; + font-size: 145%; + height: 0.7em; +} + +.note { + border: 1px solid #5088C5; + background-color: white; + margin: 1.667em 0 1.75em 0; + padding: 0 .667em .083em .750em; +} + +.warning { + border: 1px solid #5088C5; + background-color: #F0F3F7; + margin-bottom: 0.5em; + padding: 0.3em 0.8em; +} + +.bug { + border: 1px solid #000; + background-color: #ffffcc; + margin-bottom: 0.5em; + padding: 0.3em 0.8em; +} + +.deprecated { + color: #F60425; +} + +/* @end */ + +/* @group Common layout */ + +.section { + margin-top: 3em; +} + +/* @end */ + +/* @group Object specification section */ + +.section-specification { + margin-left: 2.5em; + margin-right: 2.5em; + font-size: 12px; +} + +.section-specification table { + margin-bottom: 0em; + border-top: 1px solid #d6e0e5; +} + +.section-specification td { + vertical-align: top; + border-bottom: 1px solid #d6e0e5; + border-left-width: 0px; + border-right-width: 0px; + border-top-width: 0px; + padding: .6em; +} + +.section-specification .specification-title { + font-weight: bold; +} + +/* @end */ + +/* @group Tasks section */ + +.task-list { + list-style-type: none; + padding-left: 0px; +} + +.task-list li { + margin-bottom: 3px; +} + +.task-item-suffix { + color: #996; + font-size: 12px; + font-style: italic; + margin-left: 0.5em; +} + +span.tooltip span.tooltip { + font-size: 1.0em; + display: none; + padding: 0.3em; + border: 1px solid #aaa; + background-color: #fdfec8; + color: #000; + text-align: left; +} + +span.tooltip:hover span.tooltip { + display: block; + position: absolute; + margin-left: 2em; +} + +/* @end */ + +/* @group Method section */ + +.section-method { + margin-top: 2.3em; +} + +.method-title { + margin-bottom: 1.5em; +} + +.method-subtitle { + margin-top: 0.7em; + margin-bottom: 0.2em; +} + +.method-subsection p { + margin-top: 0.4em; + margin-bottom: 0.8em; +} + +.method-declaration { + margin-top:1.182em; + margin-bottom:.909em; +} + +.method-declaration code { + font:14px Courier, Consolas, monospace; + color:#000; +} + +.declaration { + color: #000; +} + +.argument-def { + margin-top: 0.3em; + margin-bottom: 0.3em; +} + +.argument-def dd { + margin-left: 1.25em; +} + +.see-also-section ul { + list-style-type: none; + padding-left: 0px; + margin-top: 0; +} + +.see-also-section li { + margin-bottom: 3px; +} + +.declared-in-ref { + color: #666; +} + +#tocContainer.hideInXcode { + display: none; + border: 0px solid black; +} + +#top_header.hideInXcode { + display: none; +} + +#contents.hideInXcode { + border: 0px solid black; + top: 0px; + left: 0px; +} + +/* @end */ + diff --git a/Documentation/html/css/stylesPrint.css b/Documentation/html/css/stylesPrint.css new file mode 100644 index 0000000..dc54cd2 --- /dev/null +++ b/Documentation/html/css/stylesPrint.css @@ -0,0 +1,22 @@ + +header { + display: none; +} + +div.main-navigation, div.navigation-top { + display: none; +} + +div#overview_contents, div#contents.isShowingTOC, div#contents { + overflow: visible; + position: relative; + top: 0px; + border: none; + left: 0; +} +#tocContainer.isShowingTOC { + display: none; +} +nav { + display: none; +} \ No newline at end of file diff --git a/Documentation/html/hierarchy.html b/Documentation/html/hierarchy.html new file mode 100644 index 0000000..753ced8 --- /dev/null +++ b/Documentation/html/hierarchy.html @@ -0,0 +1,72 @@ + + + + + RETableViewManager Hierarchy + + + + + +
+
+

RETableViewManager

+ Roman Efimov +
+ + + +
+
+
+ + +
+ +
+

Class Hierarchy

+ + + +
+ + + +
+ + +
+
+ + \ No newline at end of file diff --git a/Documentation/html/img/button_bar_background.png b/Documentation/html/img/button_bar_background.png new file mode 100644 index 0000000..d2cd0d8 Binary files /dev/null and b/Documentation/html/img/button_bar_background.png differ diff --git a/Documentation/html/img/disclosure.png b/Documentation/html/img/disclosure.png new file mode 100644 index 0000000..147198f Binary files /dev/null and b/Documentation/html/img/disclosure.png differ diff --git a/Documentation/html/img/disclosure_open.png b/Documentation/html/img/disclosure_open.png new file mode 100644 index 0000000..ea3842b Binary files /dev/null and b/Documentation/html/img/disclosure_open.png differ diff --git a/Documentation/html/img/library_background.png b/Documentation/html/img/library_background.png new file mode 100644 index 0000000..8fa6d45 Binary files /dev/null and b/Documentation/html/img/library_background.png differ diff --git a/Documentation/html/img/title_background.png b/Documentation/html/img/title_background.png new file mode 100644 index 0000000..9001dac Binary files /dev/null and b/Documentation/html/img/title_background.png differ diff --git a/Documentation/html/index.html b/Documentation/html/index.html new file mode 100644 index 0000000..f6edd83 --- /dev/null +++ b/Documentation/html/index.html @@ -0,0 +1,68 @@ + + + + + RETableViewManager Reference + + + + + +
+
+

RETableViewManager

+ Roman Efimov +
+ + + +
+
+
+ + +
+ + + + + +
+

Class References

+ +
+ + + +
+ + +
+
+ + \ No newline at end of file diff --git a/RETableViewManager/RETableViewCell.m b/RETableViewManager/RETableViewCell.m index 55cb49c..625cd4b 100644 --- a/RETableViewManager/RETableViewCell.m +++ b/RETableViewManager/RETableViewCell.m @@ -95,29 +95,49 @@ return nil; } +- (NSIndexPath *)indexPathForPreviousResponderInSectionIndex:(NSUInteger)sectionIndex +{ + RETableViewSection *section = [self.tableViewManager.sections objectAtIndex:sectionIndex]; + NSUInteger indexInSection = [section isEqual:self.section] ? [section.items indexOfObject:self.item] : section.items.count; + for (NSInteger i = indexInSection - 1; i >= 0; i--) { + RETableViewItem *item = [section.items objectAtIndex:i]; + if ([item isKindOfClass:[RETableViewItem class]] && item.canFocus) + return [NSIndexPath indexPathForRow:i inSection:sectionIndex]; + } + return nil; +} + - (NSIndexPath *)indexPathForPreviousResponder { - NSUInteger indexInSection = [self.section.items indexOfObject:self.item]; - for (NSInteger i = indexInSection - 1; i >= 0; i--) { - RETableViewItem *item = [self.section.items objectAtIndex:i]; - if (item.canFocus) { - return [NSIndexPath indexPathForRow:i inSection:self.sectionIndex]; - break; - } + for (NSInteger i = self.sectionIndex; i >= 0; i--) { + NSIndexPath *indexPath = [self indexPathForPreviousResponderInSectionIndex:i]; + if (indexPath) + return indexPath; + } + + return nil; +} + +- (NSIndexPath *)indexPathForNextResponderInSectionIndex:(NSUInteger)sectionIndex +{ + RETableViewSection *section = [self.tableViewManager.sections objectAtIndex:sectionIndex]; + NSUInteger indexInSection = [section isEqual:self.section] ? [section.items indexOfObject:self.item] : -1; + for (NSInteger i = indexInSection + 1; i < section.items.count; i++) { + RETableViewItem *item = [section.items objectAtIndex:i]; + if (item.canFocus) + return [NSIndexPath indexPathForRow:i inSection:sectionIndex]; } return nil; } - (NSIndexPath *)indexPathForNextResponder { - NSUInteger indexInSection = [self.section.items indexOfObject:self.item]; - for (NSInteger i = indexInSection + 1; i < self.section.items.count; i++) { - RETableViewItem *item = [self.section.items objectAtIndex:i]; - if (item.canFocus) { - return [NSIndexPath indexPathForRow:i inSection:self.sectionIndex]; - break; - } + for (NSInteger i = self.sectionIndex; i < self.tableViewManager.sections.count; i++) { + NSIndexPath *indexPath = [self indexPathForNextResponderInSectionIndex:i]; + if (indexPath) + return indexPath; } + return nil; } diff --git a/RETableViewManager/RETableViewManager.h b/RETableViewManager/RETableViewManager.h index d5bec9d..f82d0a6 100644 --- a/RETableViewManager/RETableViewManager.h +++ b/RETableViewManager/RETableViewManager.h @@ -38,16 +38,53 @@ @protocol RETableViewManagerDelegate; +/** + Data driven content manager for `UITableView`. It allows to manage content of `UITableView` with ease, both forms and lists. + In its core RETableViewManager supports reusable cells based on corresponding data object class. + + */ @interface RETableViewManager : NSObject -@property (strong, nonatomic) NSMutableArray *sections; -@property (strong, nonatomic) NSMutableDictionary *mapping; -@property (strong, nonatomic) RETableViewCellStyle *style; -@property (assign, nonatomic) iddelegate; +@property (strong, readwrite, nonatomic) NSMutableArray *sections; + +///----------------------------- +/// @name Creating and Initializing a RETableViewManager +///----------------------------- + +/** + Initialize a table view manager object and specify the delegate object. + + @param delegate The delegate (RETableViewManagerDelegate) object for the table view manager. + @return The pointer to the instance, or nil if initialization failed. + */ +- (id)initWithDelegate:(id)delegate; + +///------------------------------------------- +/// @name Managing the Delegate +///------------------------------------------- + +/** + The object that acts as the delegate of the receiving table view. + */ +@property (assign, readwrite, nonatomic) iddelegate; + +///----------------------------- +/// @name Managing Object Mappings +///----------------------------- + +/** + The aggregate collection of item and class mappings within this table view manager. + */ +@property (strong, readwrite, nonatomic) NSMutableDictionary *mapping; -- (RETableViewSection *)addSection:(RETableViewSection *)section; - (void)mapObjectClass:(NSString *)objectClass toTableViewCellClass:(NSString *)cellViewClass; +///----------------------------- +/// @name Setting default style +///----------------------------- + +@property (strong, readwrite, nonatomic) RETableViewCellStyle *style; + @end @protocol RETableViewManagerDelegate @@ -56,6 +93,51 @@ - (void)tableView:(UITableView *)tableView styleCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath; - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath item:(id)item; +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath item:(id)items; + +@end + +@interface RETableViewManager (REExtendedTableViewManager) + +///----------------------------- +/// @name Adding sections +///----------------------------- + +- (void)addSection:(RETableViewSection *)section; +- (void)addSectionsFromArray:(NSArray *)array; +- (void)insertSection:(RETableViewSection *)section atIndex:(NSUInteger)index; +- (void)insertSections:(NSArray *)sections atIndexes:(NSIndexSet *)indexes; + +///----------------------------- +/// @name Removing Sections +///----------------------------- + +- (void)removeSection:(RETableViewSection *)section; +- (void)removeAllSections; +- (void)removeSectionIdenticalTo:(RETableViewSection *)section inRange:(NSRange)range; +- (void)removeSectionIdenticalTo:(RETableViewSection *)section; +- (void)removeSectionsInArray:(NSArray *)otherArray; +- (void)removeSectionsInRange:(NSRange)range; +- (void)removeSection:(RETableViewSection *)section inRange:(NSRange)range; +- (void)removeLastSection; +- (void)removeSectionAtIndex:(NSUInteger)index; +- (void)removeSectionsAtIndexes:(NSIndexSet *)indexes; + +///----------------------------- +/// @name Replacing Sections +///----------------------------- + +- (void)replaceSectionAtIndex:(NSUInteger)index withSection:(RETableViewSection *)section; +- (void)replaceSectionsAtIndexes:(NSIndexSet *)indexes withSections:(NSArray *)sections; +- (void)replaceSectionsInRange:(NSRange)range withSectionsFromArray:(NSArray *)otherArray range:(NSRange)otherRange; +- (void)replaceSectionsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray; + +///----------------------------- +/// @name Rearranging Content +///----------------------------- + +- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2; +- (void)sortSectionsUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context; +- (void)sortSectionsUsingSelector:(SEL)comparator; @end \ No newline at end of file diff --git a/RETableViewManager/RETableViewManager.m b/RETableViewManager/RETableViewManager.m index 2452772..d422d2e 100644 --- a/RETableViewManager/RETableViewManager.m +++ b/RETableViewManager/RETableViewManager.m @@ -42,8 +42,21 @@ return self; } +- (id)initWithDelegate:(id)delegate +{ + self = [self init]; + if (!self) + return nil; + + self.delegate = delegate; + + return self; +} + - (void)setDefaultMapping { + [self mapObjectClass:@"__NSCFConstantString" toTableViewCellClass:@"RETableViewStringCell"]; + [self mapObjectClass:@"__NSCFString" toTableViewCellClass:@"RETableViewStringCell"]; [self mapObjectClass:@"NSString" toTableViewCellClass:@"RETableViewStringCell"]; [self mapObjectClass:@"REStringItem" toTableViewCellClass:@"RETableViewStringCell"]; [self mapObjectClass:@"REBoolItem" toTableViewCellClass:@"RETableViewBoolCell"]; @@ -52,12 +65,6 @@ [self mapObjectClass:@"RECreditCardItem" toTableViewCellClass:@"RETableViewCreditCardCell"]; } -- (RETableViewSection *)addSection:(RETableViewSection *)section -{ - [_sections addObject:section]; - return section; -} - - (void)mapObjectClass:(NSString *)objectClass toTableViewCellClass:(NSString *)cellViewClass { [_mapping setObject:cellViewClass forKey:objectClass]; @@ -69,8 +76,8 @@ NSObject *item = [section.items objectAtIndex:indexPath.row]; Class cellClass; for (NSString *className in _mapping) { - Class objectClass = NSClassFromString(className); - if ([item isKindOfClass:objectClass]) { + NSString *itemClass = NSStringFromClass([item class]); + if ([itemClass isEqualToString:className]) { cellClass = NSClassFromString([_mapping objectForKey:className]); break; } @@ -78,7 +85,8 @@ return cellClass; } -#pragma mark - Table view data source +#pragma mark - +#pragma mark Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { @@ -164,7 +172,8 @@ return UITableViewAutomaticDimension; } -#pragma mark - Table view delegate +#pragma mark - +#pragma mark Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { @@ -184,3 +193,126 @@ } @end + +#pragma mark - +#pragma mark Managing sections + +@implementation RETableViewManager (REExtendedTableViewManager) + +- (void)addSection:(RETableViewSection *)section +{ + section.tableViewManager = self; + [_sections addObject:section]; +} + +- (void)addSectionsFromArray:(NSArray *)array +{ + for (RETableViewSection *section in array) + section.tableViewManager = self; + [_sections addObjectsFromArray:array]; +} + +- (void)insertSection:(RETableViewSection *)section atIndex:(NSUInteger)index +{ + section.tableViewManager = self; + [_sections insertObject:section atIndex:index]; +} + +- (void)insertSections:(NSArray *)sections atIndexes:(NSIndexSet *)indexes +{ + for (RETableViewSection *section in sections) + section.tableViewManager = self; + [_sections insertObjects:sections atIndexes:indexes]; +} + +- (void)removeSection:(RETableViewSection *)section +{ + [_sections removeObject:section]; +} + +- (void)removeAllSections +{ + [_sections removeAllObjects]; +} + +- (void)removeSectionIdenticalTo:(RETableViewSection *)section inRange:(NSRange)range +{ + [_sections removeObjectIdenticalTo:section inRange:range]; +} + +- (void)removeSectionIdenticalTo:(RETableViewSection *)section +{ + [_sections removeObjectIdenticalTo:section]; +} + +- (void)removeSectionsInArray:(NSArray *)otherArray +{ + [_sections removeObjectsInArray:otherArray]; +} + +- (void)removeSectionsInRange:(NSRange)range +{ + [_sections removeObjectsInRange:range]; +} + +- (void)removeSection:(RETableViewSection *)section inRange:(NSRange)range +{ + [_sections removeObject:section inRange:range]; +} + +- (void)removeLastSection +{ + [_sections removeLastObject]; +} + +- (void)removeSectionAtIndex:(NSUInteger)index +{ + [_sections removeObjectAtIndex:index]; +} + +- (void)removeSectionsAtIndexes:(NSIndexSet *)indexes +{ + [_sections removeObjectsAtIndexes:indexes]; +} + +- (void)replaceSectionAtIndex:(NSUInteger)index withSection:(RETableViewSection *)section +{ + section.tableViewManager = self; + [_sections replaceObjectAtIndex:index withObject:section]; +} + +- (void)replaceSectionsAtIndexes:(NSIndexSet *)indexes withSections:(NSArray *)sections +{ + for (RETableViewSection *section in sections) + section.tableViewManager = self; + [_sections replaceObjectsAtIndexes:indexes withObjects:sections]; +} + +- (void)replaceSectionsInRange:(NSRange)range withSectionsFromArray:(NSArray *)otherArray range:(NSRange)otherRange +{ + for (RETableViewSection *section in otherArray) + section.tableViewManager = self; + [_sections replaceObjectsInRange:range withObjectsFromArray:otherArray range:otherRange]; +} + +- (void)replaceSectionsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray +{ + [_sections replaceObjectsInRange:range withObjectsFromArray:otherArray]; +} + +- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2 +{ + [_sections exchangeObjectAtIndex:idx1 withObjectAtIndex:idx2]; +} + +- (void)sortSectionsUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context +{ + [_sections sortUsingFunction:compare context:context]; +} + +- (void)sortSectionsUsingSelector:(SEL)comparator +{ + [_sections sortUsingSelector:comparator]; +} + +@end diff --git a/RETableViewManager/RETableViewSection.h b/RETableViewManager/RETableViewSection.h index 385b7f6..2f4cba2 100644 --- a/RETableViewManager/RETableViewSection.h +++ b/RETableViewManager/RETableViewSection.h @@ -25,42 +25,159 @@ #import +@class RETableViewManager; + +/** + Table view section. + */ @interface RETableViewSection : NSObject /** An array of section items (rows). */ -@property (strong, nonatomic) NSMutableArray *items; +@property (strong, readwrite, nonatomic) NSMutableArray *items; -@property (copy, nonatomic) NSString *headerTitle; -@property (copy, nonatomic) NSString *footerTitle; +/** + The title of the header of the specified section of the table view + */ +@property (copy, readwrite, nonatomic) NSString *headerTitle; -@property (strong, nonatomic) UIView *headerView; -@property (strong, nonatomic) UIView *footerView; +/** + The title of the footer of the specified section of the table view + */ +@property (copy, readwrite, nonatomic) NSString *footerTitle; -///-------------------------------------------- -/// @name Creating and Initializing Sections -///-------------------------------------------- -- (id)initWithHeaderTitle:(NSString *)headerTitle; -- (id)initWithHeaderTitle:(NSString *)headerTitle footerTitle:(NSString *)footerTitle; -- (id)initWithHeaderView:(UIView *)headerView; -- (id)initWithHeaderView:(UIView *)headerView footerView:(UIView *)footerView; +/** + A view object to display in the header of the specified section of the table view. + */ +@property (strong, readwrite, nonatomic) UIView *headerView; +/** + A view object to display in the footer of the specified section of the table view. + */ +@property (strong, readwrite, nonatomic) UIView *footerView; + +@property (weak, readwrite, nonatomic) RETableViewManager *tableViewManager; + +/** + Section index in UITableView. + */ +@property (assign, readonly, nonatomic) NSUInteger index; + +///----------------------------- +/// @name Creating and Initializing a RETableViewSection +///----------------------------- + +/** + Creates and returns a new section. + @return A new section. + */ ++ (id)section; + +/** + Creates and returns a new section with predefined header title. + @param headerTitle A header title. + @return A new section with defined header title. + */ + (id)sectionWithHeaderTitle:(NSString *)headerTitle; + +/** + Creates and returns a new section with predefined header and footer titles. + @param headerTitle A header title. + @param footerTitle A footer title. + @return A new section with header and footer titles. + */ + (id)sectionWithHeaderTitle:(NSString *)headerTitle footerTitle:(NSString *)footerTitle; + +/** + Creates and returns a new section containing a header view. + @param headerView A header view. + @return A new section containing a header view. + */ + (id)sectionWithHeaderView:(UIView *)headerView; + +/** + Creates and returns a new section containing header and footer views. + @param headerView A header view. + @param footerView A footer view. + @return A new section containing header and footer views. + */ + (id)sectionWithHeaderView:(UIView *)headerView footerView:(UIView *)footerView; -///-------------------------------------------- -/// @name Adding Items -///-------------------------------------------- -- (id)addItem:(id)item; -- (void)addItemsFromArray:(NSArray *)array; +/** + Initializes a newly allocated section and sets header title. + @param headerTitle A header title. + @return A new section initialized with a header title. + */ +- (id)initWithHeaderTitle:(NSString *)headerTitle; -///-------------------------------------------- +/** + Initializes a newly allocated section with header and footer titles. + @param headerTitle A header title. + @param footerTitle A footer title. + @return A new section initialized with header and footer titles. + */ +- (id)initWithHeaderTitle:(NSString *)headerTitle footerTitle:(NSString *)footerTitle; + +/** + Initializes a newly allocated section containing a header view. + @param headerView A header view. + @return A new section initialized containing a header view. + */ +- (id)initWithHeaderView:(UIView *)headerView; + +/** + Initializes a newly allocated section containing header and footer views. + @param headerView A header view. + @param footerView A footer view. + @return A new section initialized with header and footer views. + */ +- (id)initWithHeaderView:(UIView *)headerView footerView:(UIView *)footerView; + +///----------------------------- +/// @name Adding Items +///----------------------------- + +/** + Inserts a given item at the end of the array. + @param item The item to add to the end of the array's content. This value must not be `nil`. + @return The item. + */ +- (void)addItem:(id)item; +- (void)addItemsFromArray:(NSArray *)array; +- (void)insertItem:(id)item atIndex:(NSUInteger)index; +- (void)insertItems:(NSArray *)items atIndexes:(NSIndexSet *)indexes; + +///----------------------------- /// @name Removing Items -///-------------------------------------------- +///----------------------------- + - (void)removeItem:(id)item; - (void)removeAllItems; +- (void)removeItemIdenticalTo:(id)item inRange:(NSRange)range; +- (void)removeItemIdenticalTo:(id)item; +- (void)removeItemsInArray:(NSArray *)otherArray; +- (void)removeItemsInRange:(NSRange)range; +- (void)removeItem:(id)item inRange:(NSRange)range; +- (void)removeLastItem; +- (void)removeItemAtIndex:(NSUInteger)index; +- (void)removeItemsAtIndexes:(NSIndexSet *)indexes; -@end +///----------------------------- +/// @name Replacing Items +///----------------------------- + +- (void)replaceItemAtIndex:(NSUInteger)index withItem:(id)item; +- (void)replaceItemsAtIndexes:(NSIndexSet *)indexes withItems:(NSArray *)items; +- (void)replaceItemsInRange:(NSRange)range withItemsFromArray:(NSArray *)otherArray range:(NSRange)otherRange; +- (void)replaceItemsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray; + +///----------------------------- +/// @name Rearranging Content +///----------------------------- + +- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2; +- (void)sortItemsUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context; +- (void)sortItemsUsingSelector:(SEL)comparator; + +@end \ No newline at end of file diff --git a/RETableViewManager/RETableViewSection.m b/RETableViewManager/RETableViewSection.m index 87b8f66..2392867 100644 --- a/RETableViewManager/RETableViewSection.m +++ b/RETableViewManager/RETableViewSection.m @@ -24,12 +24,43 @@ // #import "RETableViewSection.h" +#import "RETableViewManager.h" @implementation RETableViewSection #pragma mark - #pragma mark Creating and Initializing Sections +/* + * Static initialization methods + * + */ + ++ (id)section +{ + return [[self alloc] init]; +} + ++ (id)sectionWithHeaderTitle:(NSString *)headerTitle +{ + return [[self alloc ] initWithHeaderTitle:headerTitle]; +} + ++ (id)sectionWithHeaderTitle:(NSString *)headerTitle footerTitle:(NSString *)footerTitle +{ + return [[self alloc] initWithHeaderTitle:headerTitle footerTitle:footerTitle]; +} + ++ (id)sectionWithHeaderView:(UIView *)headerView +{ + return [[self alloc] initWithHeaderView:headerView footerView:nil]; +} + ++ (id)sectionWithHeaderView:(UIView *)headerView footerView:(UIView *)footerView +{ + return [[self alloc] initWithHeaderView:headerView footerView:footerView]; +} + - (id)init { self = [super init]; @@ -75,38 +106,22 @@ return self; } -/* - * Static initialization methods - * - */ +#pragma mark - +#pragma mark Reading information -+ (id)sectionWithHeaderTitle:(NSString *)headerTitle +- (NSUInteger)index { - return [[self alloc ] initWithHeaderTitle:headerTitle]; -} - -+ (id)sectionWithHeaderTitle:(NSString *)headerTitle footerTitle:(NSString *)footerTitle -{ - return [[self alloc] initWithHeaderTitle:headerTitle footerTitle:footerTitle]; -} - -+ (id)sectionWithHeaderView:(UIView *)headerView -{ - return [[self alloc] initWithHeaderView:headerView footerView:nil]; -} - -+ (id)sectionWithHeaderView:(UIView *)headerView footerView:(UIView *)footerView -{ - return [[self alloc] initWithHeaderView:headerView footerView:footerView]; + + RETableViewManager *tableViewManager = self.tableViewManager; + return [tableViewManager.sections indexOfObject:self]; } #pragma mark - #pragma mark Managing items -- (id)addItem:(id)item +- (void)addItem:(id)item { [_items addObject:item]; - return item; } - (void)addItemsFromArray:(NSArray *)array @@ -114,6 +129,31 @@ [_items addObjectsFromArray:array]; } +- (void)insertItem:(id)item atIndex:(NSUInteger)index +{ + [_items insertObject:item atIndex:index]; +} + +- (void)insertItems:(NSArray *)items atIndexes:(NSIndexSet *)indexes +{ + [_items insertObjects:items atIndexes:indexes]; +} + +- (void)removeItem:(id)item inRange:(NSRange)range +{ + [_items removeObject:item inRange:range]; +} + +- (void)removeLastItem +{ + [_items removeLastObject]; +} + +- (void)removeItemAtIndex:(NSUInteger)index +{ + [_items removeObjectAtIndex:index]; +} + - (void)removeItem:(id)item { [_items removeObject:item]; @@ -124,4 +164,64 @@ [_items removeAllObjects]; } +- (void)removeItemIdenticalTo:(id)item inRange:(NSRange)range +{ + [_items removeObjectIdenticalTo:item inRange:range]; +} + +- (void)removeItemIdenticalTo:(id)item +{ + [_items removeObjectIdenticalTo:item]; +} + +- (void)removeItemsInArray:(NSArray *)otherArray +{ + [_items removeObjectsInArray:otherArray]; +} + +- (void)removeItemsInRange:(NSRange)range +{ + [_items removeObjectsInRange:range]; +} + +- (void)removeItemsAtIndexes:(NSIndexSet *)indexes +{ + [_items removeObjectsAtIndexes:indexes]; +} + +- (void)replaceItemAtIndex:(NSUInteger)index withItem:(id)item +{ + [_items replaceObjectAtIndex:index withObject:item]; +} + +- (void)replaceItemsInRange:(NSRange)range withItemsFromArray:(NSArray *)otherArray range:(NSRange)otherRange +{ + [_items replaceObjectsInRange:range withObjectsFromArray:otherArray range:otherRange]; +} + +- (void)replaceItemsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray +{ + [_items replaceObjectsInRange:range withObjectsFromArray:otherArray]; +} + +- (void)replaceItemsAtIndexes:(NSIndexSet *)indexes withItems:(NSArray *)items +{ + [_items replaceObjectsAtIndexes:indexes withObjects:items]; +} + +- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2 +{ + [_items exchangeObjectAtIndex:idx1 withObjectAtIndex:idx2]; +} + +- (void)sortItemsUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context +{ + [_items sortUsingFunction:compare context:context]; +} + +- (void)sortItemsUsingSelector:(SEL)comparator +{ + [_items sortUsingSelector:comparator]; +} + @end diff --git a/RETableViewManagerExample/RETableViewManagerExample.xcodeproj/project.pbxproj b/RETableViewManagerExample/RETableViewManagerExample.xcodeproj/project.pbxproj index 9ba3b04..d989d02 100644 --- a/RETableViewManagerExample/RETableViewManagerExample.xcodeproj/project.pbxproj +++ b/RETableViewManagerExample/RETableViewManagerExample.xcodeproj/project.pbxproj @@ -123,11 +123,11 @@ 30DB066216E934AD006C9530 /* RETableViewCellStyle.m */, 30DB066316E934AD006C9530 /* RETableViewItem.h */, 30DB066416E934AD006C9530 /* RETableViewItem.m */, - 30DB066516E934AD006C9530 /* RETableViewManager.bundle */, 30DB066616E934AD006C9530 /* RETableViewManager.h */, 30DB066716E934AD006C9530 /* RETableViewManager.m */, 30DB066816E934AD006C9530 /* RETableViewSection.h */, 30DB066916E934AD006C9530 /* RETableViewSection.m */, + 30DB066516E934AD006C9530 /* RETableViewManager.bundle */, ); name = RETableViewManager; path = ../RETableViewManager; diff --git a/RETableViewManagerExample/RETableViewManagerExample/ControlsViewController.m b/RETableViewManagerExample/RETableViewManagerExample/ControlsViewController.m index 54f1dcd..e834c34 100644 --- a/RETableViewManagerExample/RETableViewManagerExample/ControlsViewController.m +++ b/RETableViewManagerExample/RETableViewManagerExample/ControlsViewController.m @@ -27,6 +27,7 @@ RETableViewSection *section = [[RETableViewSection alloc] initWithHeaderTitle:@"Basic controls"]; [_manager addSection:section]; + [section addItem:@"Simple NSString"]; RETextItem *fullLengthField = [RETextItem itemWithTitle:nil value:nil placeholder:@"Full length text field"]; [section addItem:fullLengthField]; [section addItem:[RETextItem itemWithTitle:@"Text item 1" value:nil placeholder:@"Text"]]; @@ -35,6 +36,10 @@ [section addItem:[RETextItem itemWithTitle:@"Text item 4" value:nil placeholder:@"Text"]]; [section addItem:[REBoolItem itemWithTitle:@"Bool item" value:YES]]; + section = [[RETableViewSection alloc] initWithHeaderTitle:@"Basic controls"]; + [_manager addSection:section]; + [section addItem:[RETextItem itemWithTitle:@"Text item 1" value:nil placeholder:@"Text"]]; + section = [[RETableViewSection alloc] initWithHeaderTitle:@"Credit card"]; [_manager addSection:section]; [section addItem:[RECreditCardItem item]]; diff --git a/appedoc_command.txt b/appedoc_command.txt new file mode 100644 index 0000000..d0bed27 --- /dev/null +++ b/appedoc_command.txt @@ -0,0 +1 @@ +appledoc --project-name RETableViewManager --project-company 'Roman Efimov' --company-id com.romanefimov --output Documentation --explicit-crossref --no-create-docset RETableViewManager \ No newline at end of file