Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Skeletonview | 11,743 | 24 | a month ago | 61 | August 11, 2022 | 47 | mit | Swift | ||
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting | ||||||||||
Viewanimator | 6,825 | 26 | 6 months ago | 20 | November 23, 2020 | 10 | mit | Swift | ||
ViewAnimator brings your UI to life with just one line | ||||||||||
Persei | 3,249 | 10 | 3 years ago | 8 | October 26, 2017 | 1 | mit | Swift | ||
Animated top menu for UITableView / UICollectionView / UIScrollView written in Swift | ||||||||||
Tabanimated | 3,177 | 1 | 16 days ago | 69 | August 12, 2021 | 26 | mit | Objective-C | ||
A skeleton screen loading framework based on native for iOS. (一个由iOS原生组件映射出骨架屏的框架,包含快速植入,低耦合,兼容复杂视图等特点,提供国内主流骨架屏动画的加载方案,同时支持上拉加载更多、自定制动画。) | ||||||||||
Rxdatasources | 2,932 | 449 | 6 months ago | 33 | January 02, 2021 | 76 | mit | Swift | ||
UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...) | ||||||||||
Brflabbytable | 823 | 3 | 6 years ago | 1 | March 24, 2015 | 2 | apache-2.0 | Objective-C | ||
Bouncy and distorded table view cells, available on Cocoapods | ||||||||||
Adlivelytableview | 760 | 1 | 8 years ago | 1 | March 24, 2015 | 6 | other | Objective-C | ||
Lively UITableView | ||||||||||
Tableflip | 539 | 4 | 2 years ago | 4 | October 22, 2018 | mit | Swift | |||
A simpler way to do cool UITableView animations! (╯°□°)╯︵ ┻━┻ | ||||||||||
Appstore Card Transition | 501 | a year ago | 3 | March 16, 2020 | 13 | mit | Swift | |||
Appstore card animation transition. UICollectionView and UITableView card expand animated transition for iOS | ||||||||||
React Infinity | 469 | 4 | 1 | 7 years ago | 9 | March 30, 2015 | 7 | JavaScript | ||
A UITableView Inspired list and grid display solution with element culling and smooth animations |
I recommend to read about SkeletonView to understand on how it works before you will use this sample project.
SkeletonableTableView is the another way to implement UITableView with skeletonable effect and without any delegate or datasource protocols. It was written as a wrapper over SkeletonView by Juanpe. You can do any customizations you want and use this project as a sample
Firstly, you should install SkeletonView to your project. There are several ways on how to install it.
After installation, just drag and drop the Sources folder to your project and customize it if you want to.
1. Import SkeletonView in proper place.
import SkeletonView
2. Now, you can make your UITableView skeletonable in two ways.
Just use SkeletonableTableView:
lazy var tableView = SkeletonableTableView()
// or by Interface builder
@IBOutlet weak var tableView: SkeletonableTableView!
Create your own class and inherit from SkeletonableTableView:
class CustomTableView: SkeletonableTableView {}
3. Create UITableViewCells, inherit from SkeletonableTableViewCell and register to your tableView.
class CustomCell: SkeletonableTableViewCell {}
4. If you have sections/footers you should create class, inherit from SkeletonableHeaderFooterView and register it too.
class CustomHeaderView: SkeletonableHeaderFooterView {}
Important: add all UIViews to contentView, not to root view. Otherwise, only rootView will be skeletoned and wouldn't work as expected. I suggest to implement your custom UITableViewHeaderFooterView programmatically as I couldn't find another way to add UIViews to contentView by Interface Builder
3. You have 4 choices to show the skeleton on tableView (but you can create your own and improve it):
(1) tableView.showSolidSkeleton() // Solid without animation
(2) tableView.showSolidSkeletonAnimating() // Solid animated
(3) tableView.showGradientedSkeleton() // Gradient
(4) tableView.showGradientedSkeletonAnimating() // Gradient animated
Preview from SkeletonView
|
|
|
|
![]() |
![]() |
![]() |
![]() |
You can set one color for all the cells and headerFooterViews by changing the value of skeletonTintColor:
tableView.skeletonTintColor = UIColor.gray
You can change the corner radius of all skeletoned views (defaults to 4.0):
tableView.cornerRadius = 8.0
SkeletonableTableViewCell marks only subviews of contentView as skeletonable, but you can tweak the marking behavior in your own way. You should just override function setupSkeletonableViews() in your cell and change skeletonable configurations for specific views. You can see it in Circled Cell (from example) in details. In my case, I didn't want to skeletone some views (blackLineView), also I wished to make subviews of containerView skeletonable (not only containerView).
// from example
override func setupSkeletonableViews() {
super.setupSkeletonableViews()
let views: [UIView] = [[conainerView], conainerView.subviews, stackView.arrangedSubviews].flatMap { $0 }
views.forEach { $0.isSkeletonable = true }
blackLineView.isSkeletonable = false
}
There can be some cases when we need to set different skeleton color or appearance configuration for specific cells. In that case, you just override function which is used to show skeleton in your cell. Example from ProfileCell:
// Or override any function from 4
override func showSolidSkeletonAnimating(color: UIColor = SkeletonAppearance.default.tintColor, animation: SkeletonLayerAnimation? = nil, transition: SkeletonTransitionStyle = .none) {
// skeleton color of specific cell was changed to `UIColor.black`
super.showSolidSkeletonAnimating(color: .black, animation: animation, transition: transition)
}