{"id":13485365,"url":"https://github.com/SimformSolutionsPvtLtd/SSMultiSwipeCellKit","last_synced_at":"2025-03-27T19:30:58.623Z","repository":{"id":43151358,"uuid":"394663452","full_name":"SimformSolutionsPvtLtd/SSMultiSwipeCellKit","owner":"SimformSolutionsPvtLtd","description":null,"archived":false,"fork":false,"pushed_at":"2022-03-16T06:18:18.000Z","size":3336,"stargazers_count":35,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-05T11:50:57.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SimformSolutionsPvtLtd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-10T13:24:27.000Z","updated_at":"2024-09-06T11:33:46.000Z","dependencies_parsed_at":"2022-09-14T08:02:44.355Z","dependency_job_id":null,"html_url":"https://github.com/SimformSolutionsPvtLtd/SSMultiSwipeCellKit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimformSolutionsPvtLtd%2FSSMultiSwipeCellKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimformSolutionsPvtLtd%2FSSMultiSwipeCellKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimformSolutionsPvtLtd%2FSSMultiSwipeCellKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimformSolutionsPvtLtd%2FSSMultiSwipeCellKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SimformSolutionsPvtLtd","download_url":"https://codeload.github.com/SimformSolutionsPvtLtd/SSMultiSwipeCellKit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245910730,"owners_count":20692494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T18:00:20.815Z","updated_at":"2025-03-27T19:30:57.955Z","avatar_url":"https://github.com/SimformSolutionsPvtLtd.png","language":"Swift","readme":"\u003ca href=\"https://www.simform.com/\"\u003e\u003cimg src=\"https://github.com/SimformSolutionsPvtLtd/SSToastMessage/blob/master/simformBanner.png\"\u003e\u003c/a\u003e\n# SSMultiSwipeCellKit\n## Multi Cell selection for UITableView with sliding animation\n[![Swift Version][swift-image]][swift-url]\n[![Build Status][travis-image]][travis-url]\n[![Carthage compatible][carthage-icon]][carthage-link]\n[![SPM compatible][spm-icon]][spm-link]\n[![License][license-image]][license-url]\n[![PRs Welcome][PR-image]][PR-url]\n[![Platform][platform-image]][platform-url]\n\u003c!--[![CocoaPods][cocoapods-version][cocoapods-version-link]--\u003e\n\nSSMultiSwipeCellKit provides feature for UITableView to select multiple cell at once with beautiful sliding animations.\n\n# Features\n\n- Up to 3 leading and 3 trailing actions\n- Set image and/or text for the action indicator for swipe\n- Easy to use and lightweight\n\n# 🎬 Preview\n\n| Leading actions | Trailing actions |\n|--|--|\n| ![](gifs/leading.gif) | ![](gifs/trailing.gif) |\n\n\n# Installation\n\n### CocoaPods\n\n[CocoaPods][cocoapods-link] is a dependency manager for Cocoa projects. You can install it with the following command:\n\n```bash\n$ gem install cocoapods\n```\n\nTo integrate SSMultiSwipeCellKit into your Xcode project using CocoaPods, specify it in your `Podfile`:\n\n```ruby\nsource 'https://github.com/CocoaPods/Specs.git'\nplatform :ios, '15.0'\nuse_frameworks!\n\ntarget '\u003cYour Target Name\u003e' do\n    pod 'SSMultiSwipeCellKit'\nend\n```\n\nThen, run the following command:\n\n```bash\n$ pod install\n```\n\n### Carthage\n\n[Carthage][carthage-link] is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate SSMultiSwipeCellKit into your Xcode project using Carthage, specify it in your `Cartfile`:\n\n```ogdl\ngithub \"SimformSolutionsPvtLtd/SSMultiSwipeCellKit\" ~\u003e 1.0.0\n```\nRun `carthage update --use-xcframeworks` to build the framework and drage the built SSMultiSwipeCellKit.framework into your Xcode project.\n\n### Swift Package Manager\n\nThe [Swift Package Manager][spm-link] is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. \n\nOnce you have your Swift package set up, adding SSMultiSwipeCellKit as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`.\n\n```swift\ndependencies: [\n    .package(url: \"https://github.com/SimformSolutionsPvtLtd/SSMultiSwipeCellKit.git\", .upToNextMajor(from: \"1.0.0\"))\n]\n```\n\n\n# How it works:\n\n1. Assign our custom class SSTableView to you UITableView\n\n| Screenshot |\n|--|\n| ![](screenshots/sstableview.png) |\n\n2. Confirm the SSTableCellDelegate methods\n```swift\nextension ViewController: SSTableCellDelegate {\n    \n    func leadingSwipeActions(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -\u003e SSSwipeConfiguration? {\n        let a1 = SSSwipeAction(image: nil, text: \"Queue\", completion: { indexPaths in\n            // use selected indexPaths for leading action 1\n        })\n        let a2 = SSSwipeAction(image: UIImage(named: \"archive\"), text: nil, completion: { indexPaths in\n           // use selected indexPaths for leading action 2\n        })\n        let a3 = SSSwipeAction(image: UIImage(named: \"select\"), text: \"select\", completion: { indexPaths in\n           // use selected indexPaths for leading action 3\n        })\n        a1.backgroundColor = .cyan\n        a2.backgroundColor = .darkGray\n        a3.backgroundColor = .green\n        \n        return SSSwipeConfiguration(actions: [a3, a2, a1])\n    }\n    \n    func trailingSwipeActions(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -\u003e SSSwipeConfiguration? {\n        \n        let a4 = SSSwipeAction(image: UIImage(named: \"trash\"), text: \"remove\", completion: { indexPaths in\n           // use selected indexPaths for trailing action 1\n        })\n        let a5 = SSSwipeAction(image: UIImage(named: \"tick\"), text: nil, completion: { indexPaths in\n           // use selected indexPaths for trailing action 2\n        })\n        let a6 = SSSwipeAction(image: nil, text: \"snooze\", completion: { indexPaths in\n           // use selected indexPaths for trailing action 3\n        })\n        a4.backgroundColor = .red\n        a5.backgroundColor = .brown\n        a6.backgroundColor = .systemIndigo\n        \n        return SSSwipeConfiguration(actions: [a6, a5, a4])\n    }\n    \n}\n```\n\n3. Create a customr table cell and set the cell delegate as self when returning `cellForRowAt` and you are good to go 👍\n```swift\nclass TableCell: SSTableCell {}\n```\n\n```swift\nfunc tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -\u003e UITableViewCell {\n    guard let cell = table.dequeueReusableCell(withIdentifier: AppIdentifiers.tableCell.identifier, for: indexPath) as? TableCell else {\n        return UITableViewCell()\n    }\n    cell.configureCell(data: tableItems[indexPath.row])\n    cell.delegate = self\n    return cell\n}\n```\n\n# How to customize swipe action threshold values :\n\n* Take an Outlet of the SStableView and assign percentage values fot threshold\n```swift\n    tableView.secondSwipeThreshold = 30\n    tableView.thirdSwipeThreshold = 60\n```\n\n# How to customize leading and trailing action views:\n\n* Change backgound color\n```swift\n    let action = SSSwipeAction(image: UIImage(named: \"trash\"), text: \"remove\", completion: { indexPaths in\n       // use selected indexPaths for trailing action 1\n    })\n    action.backgroundColor = .red    \n```\n* Change actionIndicator view size\n```swift\n    guard let cell = table.dequeueReusableCell(withIdentifier: AppIdentifiers.tableCell.identifier, for: indexPath) as? TableCell else {\n        return nil\n    }\n    let action = SSSwipeAction(image: UIImage(named: \"trash\"), text: \"remove\", completion: { indexPaths in\n       // use selected indexPaths for trailing action 1\n    })\n    action.actionIndicatorViewSize = cell.frame.height / 2\n```\n\n* Change action indicator icon offset\n```swift\n    let action = SSSwipeAction(image: UIImage(named: \"trash\"), text: \"remove\", completion: { indexPaths in\n       // use selected indexPaths for trailing action 1\n    })\n    action.actionIndicatorIconOffset = 10\n```\n\n## Find this library useful? ❤️\nSupport it by joining __[stargazers]__ for this repository.⭐\n\n## 🤝 How to Contribute\n\nWhether you're helping us fix bugs, improve the docs, or a feature request, we'd love to have you! 💪\nCheck out our __[Contributing Guide]__ for ideas on contributing.\n\n# Check our other Libraries:\n* Check our other Libraries also - [SimformSolutionsPvtLtd][SimformSolutionsPvtLtd]\n\n## Bugs and Feedback\n\nFor bugs, feature requests, and discussion please use __[GitHub Issues]__.\n\n## License\n\nDistributed under the MIT license. See [LICENSE][license-url] for more information.\n\n[//]: # (These are reference links used in the body of this note and get stripped out when the markdown processor does its job. Thanks SO - http://stackoverflow.com/questions/4823468/store-comments-in-markdown-syntax)\n\n   [git-repo-url]:                              \u003chttps://github.com/SimformSolutionsPvtLtd/SSPullToRefresh.git\u003e\n   [stargazers]:                                \u003chttps://github.com/mobile-simformsolutions/SSMultiSwipeCellKit/stargazers\u003e\n   [Contributing Guide]:                        \u003chttps://github.com/mobile-simformsolutions/SSMultiSwipeCellKit/main/CONTRIBUTING.md\u003e\n   [GitHub Issues]:                             \u003chttps://github.com/mobile-simformsolutions/SSMultiSwipeCellKit/issues\u003e\n   [swift-image]:                               \u003chttps://img.shields.io/badge/swift-5.0-orange.svg\u003e\n   [swift-url]:                                 \u003chttps://swift.org/\u003e\n   [license-image]:                             \u003chttps://img.shields.io/badge/License-MIT-blue.svg\u003e\n   [license-url]:                               LICENSE\n   [platform-image]:                            \u003chttps://img.shields.io/cocoapods/p/LFAlertController.svg?style=flat\u003e\n   [platform-url]:                              \u003chttps://github.com/SimformSolutionsPvtLtd/SSMultiSwipeCellKit\u003e\n   [PR-image]:                                  \u003chttps://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\u003e\n   [PR-url]:                                    \u003chttp://makeapullrequest.com\u003e\n   [SimformSolutionsPvtLtd]:                    \u003chttps://github.com/orgs/SimformSolutionsPvtLtd/repositories\u003e\n   [carthage-icon]:                             \u003chttps://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat\u003e\n   [carthage-link]:                             \u003chttps://github.com/Carthage/Carthage\u003e\n   [spm-icon]:                                  \u003chttps://img.shields.io/badge/SwiftPM-Compatible-brightgreen.svg?style=flat\u003e\n   [spm-link]:                                  \u003chttps://www.swift.org/package-manager/\u003e\n   [cocoapods-link]:                            \u003chttps://cocoapods.org/\u003e\n   [travis-image]:                              \u003chttps://img.shields.io/travis/dbader/node-datadog-metrics/master.svg?style=flat-square\u003e\n   [travis-url]:                                \u003chttps://github.com/SimformSolutionsPvtLtd/SSMultiSwipeCellKit\u003e\n   [cocoapods-version-link]:                    link of cocapods for this lib\n   [cocoapods-version]:                         link of cocoapods icon\n","funding_links":[],"categories":["iOS","iOS Guides"],"sub_categories":["Swift"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSimformSolutionsPvtLtd%2FSSMultiSwipeCellKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSimformSolutionsPvtLtd%2FSSMultiSwipeCellKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSimformSolutionsPvtLtd%2FSSMultiSwipeCellKit/lists"}