Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/younatics/YNExpandableCell
✨ Awesome expandable, collapsible tableview cell for iOS written in Swift 4
https://github.com/younatics/YNExpandableCell
cell collapsible expandable ios swift3 tableview tableviewcell
Last synced: 3 months ago
JSON representation
✨ Awesome expandable, collapsible tableview cell for iOS written in Swift 4
- Host: GitHub
- URL: https://github.com/younatics/YNExpandableCell
- Owner: younatics
- License: mit
- Created: 2017-03-11T00:56:17.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-10-15T14:42:57.000Z (about 5 years ago)
- Last Synced: 2024-03-30T20:02:14.660Z (7 months ago)
- Topics: cell, collapsible, expandable, ios, swift3, tableview, tableviewcell
- Language: Swift
- Homepage: https://www.cocoacontrols.com/controls/ynexpandablecell
- Size: 23.8 MB
- Stars: 454
- Watchers: 12
- Forks: 35
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS. (UI / Table View / Collection View)
- awesome-swift - YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS. (Libs / UI)
- awesome-cocoa - YNExpandableCell
- awesome-swift - YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS. (Libs / UI)
- awesome-ios-star - YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS. (UI / Table View / Collection View)
- fucking-awesome-swift - YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS. (Libs / UI)
- awesome-swift - YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS written in Swift 4 ` 📝 2 years ago` (UI [🔝](#readme))
README
# USE [ExpandableCell](https://github.com/younatics/ExpandableCell). New version of this library.
# YNExpandableCell[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
[![Version](https://img.shields.io/cocoapods/v/YNExpandableCell.svg?style=flat)](http://cocoapods.org/pods/YNExpandableCell)
[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
[![CocoaPods](https://img.shields.io/cocoapods/metrics/doc-percent/YNExpandableCell.svg)](http://cocoadocs.org/docsets/YNExpandableCell)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/younatics/YNExpandableCell/blob/master/LICENSE)
[![Build Status](https://travis-ci.org/younatics/YNExpandableCell.svg?branch=master)](https://travis-ci.org/younatics/YNExpandableCell)
[![Platform](https://img.shields.io/cocoapods/p/YNExpandableCell.svg?style=flat)](http://cocoapods.org/pods/YNExpandableCell)
[![Swift 4.2](https://img.shields.io/badge/Swift-4.2-orange.svg?style=flat)](https://developer.apple.com/swift/)## Updates
See [CHANGELOG](https://github.com/younatics/YNExpandableCell/blob/master/CHANGELOG.md) for details## Intoduction
Easiest usage of expandable & collapsible cell for iOS, written in Swift 4.2 You can customize expandable `UITableViewCell` whatever you like. `YNExpandableCell` is made because `insertRows` and `deleteRows` is hard to use. You can just inheirt `YNTableViewDelegate` and add one more method `func tableView(_ tableView: YNTableView, expandCellAt indexPath) -> UITableViewCell?`![demo](Images/demo.gif)
## Requirements
`YNExpandableCell` written in Swift 3. Compatible with iOS 8.0+
## Installation
### Cocoapods
YNExpandableCell is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:```ruby
pod 'YNExpandableCell'
```
### Carthage
```
github "younatics/YNExpandableCell"
```
## Usage
```swift
import YNExpandableCell
```Make `YNTableView` in Storyboard or in code
```swift
@IBOutlet var ynTableView: YNTableView!
```Inherit `YNTableViewDelegate`
```swift
class ViewController: UIViewController, YNTableViewDelegate
```Set delegate and register cells
```swift
self.ynTableView.ynDelegate = selflet cells = ["YNExpandableCellEx","YNSliderCell","YNSegmentCell"]
self.ynTableView.registerCellsWith(nibNames: cells, and: cells)
self.ynTableView.registerCellsWith(cells: [UITableViewCell.self as AnyClass], and: ["YNNonExpandableCell"])
```#### Use one of required method
Set expandable cell in `YNTableViewDelegate` method (Required)
```swift
func tableView(_ tableView: YNTableView, expandCellAt indexPath: IndexPath) -> UITableViewCell? {
let ynSliderCell = tableView.dequeueReusableCell(withIdentifier: YNSliderCell.ID) as! YNSliderCell
if indexPath.section == 0 && indexPath.row == 1 {
return ynSliderCell
}
return nil
}
```Set expandable cell with height in `YNTableViewDelegate` method using `YNTableViewCell` object (Required)
```swift
func tableView(_ tableView: YNTableView, expandCellWithHeightAt indexPath: IndexPath) -> YNTableViewCell? {
let ynSliderCell = YNTableViewCell()
ynSliderCell.cell = tableView.dequeueReusableCell(withIdentifier: YNSliderCell.ID) as! YNSliderCell
ynSliderCell.height = 142if indexPath.section == 0 && indexPath.row == 1 {
return ynSliderCell
}
return nil
}
```Get didSelectRowAt in `YNTableViewDelegate` method (Optional)
```swift
func tableView(_ tableView: YNTableView, didSelectRowAt indexPath: IndexPath, isExpandableCell: Bool, isExpandedCell: Bool) {
print("Selected Section: \(indexPath.section) Row: \(indexPath.row) isExpandableCell: \(isExpandableCell) isExpandedCell: \(isExpandedCell)")
}```
Get didDeselectRowAt in `YNTableViewDelegate` method (Optional)
```swift
func tableView(_ tableView: YNTableView, didDeselectRowAt indexPath: IndexPath, isExpandableCell: Bool, isExpandedCell: Bool) {
print("Deselected Section: \(indexPath.section) Row: \(indexPath.row) isExpandableCell: \(isExpandableCell) isExpandedCell: \(isExpandedCell)")
}
```Set basic `UITableViewDataSource`, `UITableViewDelegate` and Done!
### Customize
Expand & Collapse All if you want
```swift
self.ynTableView.expandAll()
self.ynTableView.collapseAll()
```Inherit `YNExpandableCell` if you want awesome '+' '-' custom accessory type
```swift
class YNExpandableCellEx: YNExpandableCell// Change normalCustomAccessoryType, selectedCustomAccessoryType Images
```Cutomize `UITableViewRowAnimation`
```swift
self.ynTableView.ynTableViewRowAnimation = UITableViewRowAnimation.top
```Make Extensions for more `UITableViewDelegate` if you need or make pull request for me :)
## References
#### Please tell me or make pull request if you use this library in your application :)
#### [@zigbang](https://github.com/zigbang)
#### [MotionBook](https://github.com/younatics/MotionBook)
## Author
[younatics](https://twitter.com/younatics)## License
YNExpandableCell is available under the MIT license. See the LICENSE file for more info.