A Swift library for creating expandable table views in iOS with minimal implementation effort.
ExpyTableView is an open-source iOS library written in Swift that allows developers to implement expandable and collapsible sections in UITableViews with minimal code. It solves the problem of manually managing cell insertion and deletion for expandable interfaces by providing a simple protocol-based approach. Developers can focus on designing their cells while the library handles the expansion logic.
iOS developers building apps that require interactive, expandable table views, such as settings screens, data-detail interfaces, or hierarchical lists. It's particularly useful for those seeking a lightweight, Swift-native alternative to manual implementations.
Developers choose ExpyTableView because it drastically reduces boilerplate code for expandable table views, offers seamless integration with existing UITableView workflows, and provides flexibility for custom cell designs. Its Swift-native implementation and support for both CocoaPods and Swift Package Manager make it a modern, maintainable choice.
Make your table view expandable just by implementing one method.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Requires just one additional method (expandableCellForSection) alongside standard UITableViewDataSource, drastically reducing boilerplate code for expandable sections.
Supports multiple custom UITableViewCell types for expanded content, allowing design changes without overhauling expansion logic, as emphasized in the README.
Exposes public expand(_:) and collapse(_:) methods for manual management, enabling precise UI interactions beyond user taps.
Conforms to and forwards UITableViewDataSource and Delegate methods, ensuring seamless compatibility with existing iOS development patterns.
Lacks built-in support for auto-collapsing other sections, scrolling to expanded sections, or expandAll/collapseAll methods—all acknowledged as roadmap items, not current features.
Setup requires setting the table view's class and module in Interface Builder for proper initialization, which can be cumbersome in code-centric or programmatic UI projects.
Does not support UICollectionView or SwiftUI, restricting its use in modern iOS apps that may require more versatile or declarative UI frameworks.