YNExpandableCell

by younatics

younatics /YNExpandableCell

✨ Awesome expandable, collapsible tableview cell for iOS written in Swift 4

441 Stars 37 Forks Last release: over 1 year ago (1.2.1) MIT License 127 Commits 17 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

USE ExpandableCell. New version of this library.

YNExpandableCell

Awesome Version Carthage Compatible CocoaPods License: MIT Build Status Platform Swift 4.2

Updates

See CHANGELOG 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

Requirements

YNExpandableCell
written in Swift 3. Compatible with iOS 8.0+

Installation

Cocoapods

YNExpandableCell is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'YNExpandableCell'

Carthage

github "younatics/YNExpandableCell"

Usage

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 = self

let 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 = 142
if 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

MotionBook

Author

younatics Twitter

License

YNExpandableCell is available under the MIT license. See the LICENSE file for more info.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.