12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- //
- // FLEXSingleRowSection.m
- // FLEX
- //
- // Created by Tanner Bennett on 9/25/19.
- // Copyright © 2020 FLEX Team. All rights reserved.
- //
- #import "FLEXSingleRowSection.h"
- #import "FLEXTableView.h"
- @interface FLEXSingleRowSection ()
- @property (nonatomic, readonly) NSString *reuseIdentifier;
- @property (nonatomic, readonly) void (^cellConfiguration)(__kindof UITableViewCell *cell);
- @property (nonatomic) NSString *lastTitle;
- @property (nonatomic) NSString *lastSubitle;
- @end
- @implementation FLEXSingleRowSection
- #pragma mark - Public
- + (instancetype)title:(NSString *)title
- reuse:(NSString *)reuse
- cell:(void (^)(__kindof UITableViewCell *))config {
- return [[self alloc] initWithTitle:title reuse:reuse cell:config];
- }
- - (id)initWithTitle:(NSString *)sectionTitle
- reuse:(NSString *)reuseIdentifier
- cell:(void (^)(__kindof UITableViewCell *))cellConfiguration {
- self = [super init];
- if (self) {
- _title = sectionTitle;
- _reuseIdentifier = reuseIdentifier ?: kFLEXDefaultCell;
- _cellConfiguration = cellConfiguration;
- }
- return self;
- }
- #pragma mark - Overrides
- - (NSInteger)numberOfRows {
- if (self.filterMatcher && self.filterText.length) {
- return self.filterMatcher(self.filterText) ? 1 : 0;
- }
-
- return 1;
- }
- - (BOOL)canSelectRow:(NSInteger)row {
- return self.pushOnSelection || self.selectionAction;
- }
- - (void (^)(__kindof UIViewController *))didSelectRowAction:(NSInteger)row {
- return self.selectionAction;
- }
- - (UIViewController *)viewControllerToPushForRow:(NSInteger)row {
- return self.pushOnSelection;
- }
- - (NSString *)reuseIdentifierForRow:(NSInteger)row {
- return self.reuseIdentifier;
- }
- - (void)configureCell:(__kindof UITableViewCell *)cell forRow:(NSInteger)row {
- cell.textLabel.text = nil;
- cell.detailTextLabel.text = nil;
- cell.accessoryType = UITableViewCellAccessoryNone;
-
- self.cellConfiguration(cell);
- self.lastTitle = cell.textLabel.text;
- self.lastSubitle = cell.detailTextLabel.text;
- }
- - (NSString *)titleForRow:(NSInteger)row {
- return self.lastTitle;
- }
- - (NSString *)subtitleForRow:(NSInteger)row {
- return self.lastSubitle;
- }
- @end
|