diff --git a/RETableViewManager/Cells/RETableViewBoolCell.m b/RETableViewManager/Cells/RETableViewBoolCell.m index 897f813..4380f18 100644 --- a/RETableViewManager/Cells/RETableViewBoolCell.m +++ b/RETableViewManager/Cells/RETableViewBoolCell.m @@ -24,6 +24,7 @@ // #import "RETableViewBoolCell.h" +#import "RETableViewManager.h" @implementation RETableViewBoolCell @@ -54,6 +55,13 @@ _switchView.on = self.item.value; } +- (void)layoutSubviews +{ + [super layoutSubviews]; + //if ([self.tableViewManager.delegate respondsToSelector:@selector(tableView:cellWillLayoutSubviews:)]) + // [self.tableViewManager.delegate tableView:<#(UITableView *)#> cellWillLayoutSubviews:<#(UITableViewCell *)#>]; +} + #pragma mark - #pragma mark Handle events diff --git a/RETableViewManager/RETableViewManager.h b/RETableViewManager/RETableViewManager.h index c0d9f25..af0c646 100644 --- a/RETableViewManager/RETableViewManager.h +++ b/RETableViewManager/RETableViewManager.h @@ -58,6 +58,7 @@ @interface RETableViewManager : NSObject @property (strong, readwrite, nonatomic) NSMutableArray *sections; +@property (weak, readwrite, nonatomic) UITableView *tableView; ///----------------------------- /// @name Creating and Initializing a RETableViewManager @@ -69,7 +70,8 @@ @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; +- (id)initWithTableView:(UITableView *)tableView delegate:(id)delegate; +- (id)initWithTableView:(UITableView *)tableView; ///------------------------------------------- /// @name Managing the Delegate @@ -150,6 +152,7 @@ @optional - (void)tableView:(UITableView *)tableView styleCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath; +- (void)tableView:(UITableView *)tableView cellWillLayoutSubviews:(UITableViewCell *)cell; - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath item:(id)items; - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath; diff --git a/RETableViewManager/RETableViewManager.m b/RETableViewManager/RETableViewManager.m index 4ed8f10..6e1e0e6 100644 --- a/RETableViewManager/RETableViewManager.m +++ b/RETableViewManager/RETableViewManager.m @@ -42,17 +42,26 @@ return self; } -- (id)initWithDelegate:(id)delegate +- (id)initWithTableView:(UITableView *)tableView delegate:(id)delegate { self = [self init]; if (!self) return nil; + tableView.delegate = self; + tableView.dataSource = self; + + self.tableView = tableView; self.delegate = delegate; return self; } +- (id)initWithTableView:(UITableView *)tableView +{ + return [self initWithTableView:tableView delegate:nil]; +} + - (void)setDefaultMapping { [self registerClass:@"__NSCFConstantString" forCellWithReuseIdentifier:@"RETableViewCell"]; diff --git a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m index 441adcd..83ac9d3 100644 --- a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m +++ b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m @@ -23,13 +23,8 @@ // Create manager // - _manager = [[RETableViewManager alloc] init]; + _manager = [[RETableViewManager alloc] initWithTableView:self.tableView]; _manager.style.textFieldPositionOffset = CGSizeMake(0, 0); - - // Set delegate and datasource - // - self.tableView.dataSource = _manager; - self.tableView.delegate = _manager; // Create section // diff --git a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/EditingViewController.m b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/EditingViewController.m index de1459e..dfa1454 100644 --- a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/EditingViewController.m +++ b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/EditingViewController.m @@ -24,7 +24,7 @@ // Create manager // - _manager = [[RETableViewManager alloc] init]; + _manager = [[RETableViewManager alloc] initWithTableView:self.tableView]; _manager.style.textFieldPositionOffset = CGSizeMake(0, 0); // Set delegate and datasource diff --git a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ListViewController.m b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ListViewController.m index 452e388..df4ad89 100644 --- a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ListViewController.m +++ b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ListViewController.m @@ -23,17 +23,12 @@ // Create manager // - _manager = [[RETableViewManager alloc] init]; + _manager = [[RETableViewManager alloc] initWithTableView:self.tableView]; // Map item to a cell // [_manager registerClass:@"ListImageItem" forCellWithReuseIdentifier:@"ListImageCell"]; - // Set delegate and datasource - // - self.tableView.dataSource = _manager; - self.tableView.delegate = _manager; - // Set some UITableView properties // self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; diff --git a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m index ae1ea04..fa42855 100644 --- a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m +++ b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m @@ -25,14 +25,9 @@ // Create manager // - _manager = [[RETableViewManager alloc] init]; + _manager = [[RETableViewManager alloc] initWithTableView:self.tableView]; _manager.delegate = self; - // Set delegate and datasource - // - self.tableView.dataSource = _manager; - self.tableView.delegate = _manager; - // Add sections and items // RETableViewSection *section = [[RETableViewSection alloc] init];