A UITableView 子类,可以自动折叠和/或展开您的部分。
您只需像经典 UITableView 一样填充您的数据源,魔法就会发生。
默认情况下,所有部分都是关闭的,因此不会显示任何行!但你现在可以访问几个新的表视图方法
- (void)openSection:(NSUInteger)sectionIndex animated:(BOOL)animated;
- (void)closeSection:(NSUInteger)sectionIndex animated:(BOOL)animated;
- (void)toggleSection:(NSUInteger)sectionIndex animated:(BOOL)animated;
- (BOOL)isOpenSection:(NSUInteger)sectionIndex;
如它们的名称所暗示的,这些方法可以让您打开或关闭一个部分,并且可以动画或非动画。最后一个返回一个布尔值,以知道当前是否打开了部分。
因此,如果您想在您的视图加载后第一个部分是打开的,您可以写
- (void)viewDidLoad
{
[super viewDidLoad];
[self.tableView reloadData];
[self.tableView openSection:0 animated:NO];
}
默认情况下,如果您打开了一个部分,任何其他打开的部分将自动关闭。可以通过将此属性设置为 NO 来防止这种情况
@property (nonatomic, assign) BOOL exclusiveSections;
如您所见,您的表头会在轻触时自动切换其部分!在三种条件下为您自动完成
tableView:heightForHeaderInSection:
方法shouldHandleHeadersTap
是 YES(这是默认值)。要将此组件包含到您的项目中,我建议您使用 Cocoapods
pod "STCollapseTableView"
添加到您的 Podfile。以下是关于此组件如何工作的文章:转发机制。