mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-31 04:44:14 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| //
 | |
| //  FLEXMutableListSection.h
 | |
| //  FLEX
 | |
| //
 | |
| //  Created by Tanner on 3/9/20.
 | |
| //  Copyright © 2020 FLEX Team. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import "FLEXCollectionContentSection.h"
 | |
| 
 | |
| typedef void (^FLEXMutableListCellForElement)(__kindof UITableViewCell *cell, id element, NSInteger row);
 | |
| 
 | |
| /// A section aimed at meeting the needs of table views with one section
 | |
| /// (or, a section that shouldn't warrant the code duplication that comes
 | |
| /// with creating a new section just for some specific table view)
 | |
| ///
 | |
| /// Use this section if you want to display a growing list of rows,
 | |
| /// or even if you want to display a static list of rows.
 | |
| ///
 | |
| /// To support editing or inserting, implement the appropriate
 | |
| /// table view delegate methods in your table view delegate class
 | |
| /// and call \c mutate: (or \c setList: ) before updating the table view.
 | |
| ///
 | |
| /// By default, no section title is shown. Assign one to \c customTitle
 | |
| ///
 | |
| /// By default, \c kFLEXDetailCell is the reuse identifier used. If you need
 | |
| /// to support multiple reuse identifiers in a single section, implement the
 | |
| /// \c cellForRowAtIndexPath: method, dequeue the cell yourself and call
 | |
| /// \c -configureCell: on the appropriate section object, passing in the cell
 | |
| @interface FLEXMutableListSection<__covariant ObjectType> : FLEXCollectionContentSection
 | |
| 
 | |
| /// Initializes a section with an empty list.
 | |
| + (instancetype)list:(NSArray<ObjectType> *)list
 | |
|    cellConfiguration:(FLEXMutableListCellForElement)configurationBlock
 | |
|        filterMatcher:(BOOL(^)(NSString *filterText, id element))filterBlock;
 | |
| 
 | |
| /// By default, rows are not selectable. If you want rows
 | |
| /// to be selectable, provide a selection handler here.
 | |
| @property (nonatomic, copy) void (^selectionHandler)(__kindof UIViewController *host, ObjectType element);
 | |
| 
 | |
| /// The objects representing all possible rows in the section.
 | |
| @property (nonatomic) NSArray<ObjectType> *list;
 | |
| /// The objects representing the currently unfiltered rows in the section.
 | |
| @property (nonatomic, readonly) NSArray<ObjectType> *filteredList;
 | |
| 
 | |
| /// A readwrite version of the same property in \c FLEXTableViewSection.h
 | |
| ///
 | |
| /// This property expects one entry. An exception is thrown if more than one
 | |
| /// entry is supplied. If you need more than one reuse identifier within a single
 | |
| /// section, your view probably has more complexity than this class can handle.
 | |
| @property (nonatomic, readwrite) NSDictionary<NSString *, Class> *cellRegistrationMapping;
 | |
| 
 | |
| /// Call this method to mutate the full, unfiltered list.
 | |
| /// This ensures that \c filteredList is updated after any mutations.
 | |
| - (void)mutate:(void(^)(NSMutableArray *list))block;
 | |
| 
 | |
| @end
 | |
| 
 | 
