鈿狅笍 Please fill out this template when filing an issue.
Created UITableView with isSkeletonable set to true. All cells and its subview also isSkeletonable set to true. Implemented SkeletonTableViewDataSource and numberOfRowsInSection in MyViewController class. Set UITableView's dataSource to MyViewController. Called showSkeleton().
I expected UITableView to use
func collectionSkeletonView(_ skeletonView: UITableView, numberOfRowsInSection section: Int) -> Int
It always uses
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
Steps mentioned in what did you do
SkeletonView version: 1.8.6
Xcode version: 11.3.1
Swift version: 5.0
showSkeleton should be called on your collection/tableView instead of your view :)
Me too.
@paulanatoleclaudot-betclic thanks for your response, but I call it on collection view.
Me too. It doesn't calculate how many cells need to populate the whole table view.
Boys, I resolved it. I used vc addsubview tableView.
First, you must set vc self.view.isSkeletonable = true
Second, for tableView must use estimatedRowHeight.
tableView.estimatedRowHeight = 130
tableView.rowHeight = UITableView.automaticDimension
Same problem here with 1.8.6 and 1.8.7. Fixed by reverting to version 1.8.5.
I am on Xcode 11.3.1 and Swift 5.1
Got the same issue. But instead of composing my own custom TableViewController (UIViewController + UITableView), I instead opted to subclassing UITableViewController. So somehow, you need to explicitly set this controller as the dataSource of the tableView to make SV work.
class CustomTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
...
tableView.dataSource = self
}
...
}
extension CustomTableViewController: SkeletonTableViewDataSource {
...
}
Without this, when you set a breakpoint at line 35 of the file UITableView+CollectionSkeleton, guard always fails because it detects that your dataSource is of type _UIFilteredDataSource and not SkeletonTableViewDataSource.
Here's my spec: _SkeletonView_: 1.8.7 | _Swift_: 5 | _Xcode_: 11.2.1
Most helpful comment
Got the same issue. But instead of composing my own custom TableViewController (
UIViewController+UITableView), I instead opted to subclassingUITableViewController. So somehow, you need to explicitly set this controller as thedataSourceof thetableViewto make SV work.Without this, when you set a breakpoint at line 35 of the file
UITableView+CollectionSkeleton,guardalways fails because it detects that yourdataSourceis of type_UIFilteredDataSourceand notSkeletonTableViewDataSource.Here's my spec: _SkeletonView_: 1.8.7 | _Swift_: 5 | _Xcode_: 11.2.1