SkillAgentSearch skills...

StaticDataTableViewController

Enables animated hide/show of static cells and sections

Install / Use

/learn @peterpaulis/StaticDataTableViewController
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Carthage compatible

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
<p align="center"> Demo app <img src="demoapp.jpg" /> <a href="http://www.vernissageapp.com/">Created with Vernissage app</a> </p>

Installation with CocoaPods

To integrate StaticDataTableViewController into your Xcode project using CocoaPods, specify it in your Podfile:

  pod 'StaticDataTableViewController'

Usage

Subclass your UITableViewController with the StaticDataTableViewController

#import "StaticDataTableViewController.h"

@interface DemoTableViewController : StaticDataTableViewController

@end

Always use this method for table view reload

- (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

[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

[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

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

- (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 - <a href="https://min60.com">https://min60.com</a>

View on GitHub
GitHub Stars397
CategoryDevelopment
Updated1mo ago
Forks44

Languages

Objective-C

Security Score

95/100

Audited on Feb 10, 2026

No findings