# StaticDataTableViewController **Repository Path**: AllenGXS/StaticDataTableViewController ## Basic Information - **Project Name**: StaticDataTableViewController - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-17 - **Last Updated**: 2024-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) # StaticDataTableViewController This class enables animated hide/show of static cells and sections (created in IB, using the option Content : Static cells) for UITableView This method **doesn't use the hacky solution** with setting height to 0 and **allows you to animate** the change and hide **whole sections** ## Features - [x] Animations on cells and sections - [x] Change height / Resize cells - [x] Not using the hacky solution with height 0 - [x] Hide empty sections - [x] Control section header, footer visibility for empty sections

Demo app Created with Vernissage app

## Installation with CocoaPods To integrate StaticDataTableViewController into your Xcode project using CocoaPods, specify it in your `Podfile`: ```bash pod 'StaticDataTableViewController' ``` ## Usage Subclass your `UITableViewController` with the `StaticDataTableViewController` ```objective-c #import "StaticDataTableViewController.h" @interface DemoTableViewController : StaticDataTableViewController @end ``` **Always use this method for table view reload** ```objective-c - (void)reloadDataAnimated:(BOOL)animated) ``` don't call `[self.tableView reloadData]` To hide/show specific cells, to which you have an outlet or an outlet collection ``` objective-c [self cell:self.outletToMyStaticCell1 setHidden:YES]; [self cell:self.outletToMyStaticCell2 setHidden:NO]; [self cells:self.outletToManyCells setHidden:YES]; [self reloadDataAnimated:YES]; ``` - if you want to hide the whole section, just create a IBOutletCollection to all its cell, and then use `[self cells:setHidden:]` To change height of specific cells, to which you have an outlet or an outlet collection ``` objective-c [self cell:self.outletToMyStaticCell1 setHeight:44]; [self cell:self.outletToMyStaticCell2 setHeight:44]; [self cells:self.outletToManyCells setHeight:200]; [self reloadDataAnimated:YES]; ``` to customize animations, just set these properties to desired values ``` objective-c self.insertTableViewRowAnimation = UITableViewRowAnimationRight; self.deleteTableViewRowAnimation = UITableViewRowAnimationLeft; self.reloadTableViewRowAnimation = UITableViewRowAnimationMiddle; ``` or call `reloadDataAnimated:insertAnimation:reloadAnimation:deleteAnimation:` with desired animation values to control if the footer or header should be displayed, overwrite these methods in your subclass ``` objective-c - (BOOL)showHeaderForSection:(NSInteger)section vissibleRows:(NSInteger)vissibleRows; - (BOOL)showFooterForSection:(NSInteger)section vissibleRows:(NSInteger)vissibleRows; ``` ## Note - Create outlets to UITableViewsCells, not their content views! ## License Apache License 2.0: http://www.apache.org/licenses/LICENSE-2.0.txt ## Credits min:60 - Building mobile solutions - https://min60.com