FZAccordionTableView 将您的常规 UITableView 转换为可折叠表格视图。表格视图的节标题用作可触摸区域以折叠行 - 只需轻按节标题,该节下的所有行将位于标题下方展开,反之亦然。
此模块旨在非常容易使用,无需进行任何修改即可实现默认行为。只需构建一个带有单元格和节标题的表格视图,并使用此模块中的类进行子类化。
@interface FZAccordionTableView : UITableView
@property (nonatomic) BOOL allowMultipleSectionsOpen;
@property (nonatomic) BOOL keepOneSectionOpen;
@property (strong, nonatomic, nullable) NSSet <NSNumber *> *initialOpenSections;
@property (nonatomic) BOOL enableAnimationFix;
- (BOOL)isSectionOpen:(NSInteger)section;
- (void)toggleSection:(NSInteger)section;
- (NSInteger)sectionForHeaderView:(UITableViewHeaderFooterView *)headerView;
@end
@interface FZAccordionTableViewHeaderView : UITableViewHeaderFooterView
@end
@protocol FZAccordionTableViewDelegate <NSObject>
- (BOOL)tableView:(FZAccordionTableView *)tableView canInteractWithHeaderAtSection:(NSInteger)section;
- (void)tableView:(FZAccordionTableView *)tableView willOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header;
- (void)tableView:(FZAccordionTableView *)tableView didOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header;
-
- (void)tableView:(FZAccordionTableView *)tableView willCloseSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header;
- (void)tableView:(FZAccordionTableView *)tableView didCloseSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header;
@end
pod 'FZAccordionTableView', '~> 0.2.3'
FZAccordionTableView
子类化您的 UITableView
FZAccordionTableViewHeaderView
子类化您的 UITableViewHeaderFooterView
FZAccordionTableView 与 Swift 兼容!请查看 "示例" 文件夹中的 Swift 示例以查看如何在 Swift 项目中实现 FZAccordionTableView。
FZAccordionTableView 作为您的 UITableViewDelegate
/UITableViewDataSource
实现和UITableView之间的中介。FZAccordionTableView 实现 UITableViewDelegate
和 UITableViewDataSource
,询问您要显示多少行,并在某一特定节“关闭”时向UITableView报告不同的数量。UITableViewHeaderFooterView的子类化使FZAccordionTableView知道何时某一特定节被“打开”或“关闭”。
FZAccordionTableView 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。