Open
Description
Bug Description
Card Swiper doesn't snap card swipe correctly when we provide different sizes for cards using
func sizeForItem(verticalCardSwiperView: VerticalCardSwiperView, index: Int)
To Reproduce
Steps to reproduce the behavior: Following steps are for ExampleViewController in project
- Update contactsDataSource to add size for each item
e.g.
private var contactsDemoData: [Contact] = [
Contact(name: "John Doe", age: 33, size: 500),
Contact(name: "Chuck Norris", age: 78, size: 500),
Contact(name: "Bill Gates", age: 62, size: 500),
Contact(name: "Steve Jobs", age: 56, size: 300),
Contact(name: "Barack Obama", age: 56, size: 300),
Contact(name: "Mila Kunis", age: 34, size: 300),
Contact(name: "Pamela Anderson", age: 50, size: 300),
Contact(name: "Christina Anguilera", age: 37, size: 300),
Contact(name: "Ed Sheeran", age: 23, size: 300),
Contact(name: "Jennifer Lopez", age: 45, size: 300),
Contact(name: "Nicki Minaj", age: 31, size: 300),
Contact(name: "Tim Cook", age: 57, size: 300),
Contact(name: "Satya Nadella", age: 50, size: 300)
]
- Add custom size for cells using delegate method
func sizeForItem(verticalCardSwiperView: VerticalCardSwiperView, index: Int) -> CGSize {
let contact = contactsDemoData[index]
return CGSize(width: self.view.bounds.size.width, height: CGFloat(contact.size))
}
- Run project and notice, it takes size as expected, but swipe offset doesn't update based on cell size and snaps to wrong position on swipe up
Expected behavior
- Swipe offset should consider dynamic cell size and update position accordingly
Video
Environment
iOS 13.6 - iPhone 11