Need help with YNExpandableCell?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

younatics
454 Stars 35 Forks MIT License 127 Commits 8 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

# 14,786
realmsw...
swift-f...
swift5
tablevi...
101 commits
# 60,640
Python
wechat-...
adb
swift3
1 commit

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.