✨ Awesome expandable, collapsible tableview cell for iOS written in Swift 4
See CHANGELOG for details
Easiest usage of expandable & collapsible cell for iOS, written in Swift 4.2 You can customize expandable
UITableViewCellwhatever you like.
YNExpandableCellis made because
insertRowsand
deleteRowsis hard to use. You can just inheirt
YNTableViewDelegateand add one more method
func tableView(_ tableView: YNTableView, expandCellAt indexPath) -> UITableViewCell?
YNExpandableCellwritten in Swift 3. Compatible with iOS 8.0+
YNExpandableCell is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'YNExpandableCell'
github "younatics/YNExpandableCell"
import YNExpandableCell
Make
YNTableViewin 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 = self
let cells = ["YNExpandableCellEx","YNSliderCell","YNSegmentCell"] self.ynTableView.registerCellsWith(nibNames: cells, and: cells) self.ynTableView.registerCellsWith(cells: [UITableViewCell.self as AnyClass], and: ["YNNonExpandableCell"]) ```
Set expandable cell in
YNTableViewDelegatemethod (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
YNTableViewDelegatemethod using
YNTableViewCellobject (Required) ```swift func tableView(_ tableView: YNTableView, expandCellWithHeightAt indexPath: IndexPath) -> YNTableViewCell? { let ynSliderCell = YNTableViewCell() ynSliderCell.cell = tableView.dequeueReusableCell(withIdentifier: YNSliderCell.ID) as! YNSliderCell ynSliderCell.height = 142
if indexPath.section == 0 && indexPath.row == 1 { return ynSliderCell } return nil
} ```
Get didSelectRowAt in
YNTableViewDelegatemethod (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,
UITableViewDelegateand Done!
Expand & Collapse All if you want
swift self.ynTableView.expandAll() self.ynTableView.collapseAll()
Inherit
YNExpandableCellif 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
UITableViewDelegateif you need or make pull request for me :)
YNExpandableCell is available under the MIT license. See the LICENSE file for more info.