Zac*_*iro 5 uiview uiviewanimationtransition ios swift
我有一个类似Tinder界面的应用程序,用户可以翻转汽车
在我ViewController.swift,我有
private var currentCardsOnScreen: [CardViewController] = []
当我将CardViewControllers放入堆栈时,此数组将被填充:
if !currentCardsOnScreen.map({ $0.id }).contains(vc.id) {
self.currentCardsOnScreen.append(vc)
}
Run Code Online (Sandbox Code Playgroud)
滑动后,项目会被删除:
if let index = currentCardsOnScreen.index(of: currentCard),
currentCardsOnScreen.map({ $0.id }).contains(currentCard.id) {
currentCardsOnScreen.remove(at: index)
}
Run Code Online (Sandbox Code Playgroud)
当用户选择卡时,我运行:
guard let currentCard = currentCard(index: index) else { return }
currentCard.flipCard()
Run Code Online (Sandbox Code Playgroud)
哪个调用此方法:
func flipCard() {
guard
let frontOfCard = frontOfCard,
let backOfCard = backOfCard
else { return }
UIView.animate(withDuration: 0.32, delay: 0, options: .transitionFlipFromRight, animations: {
if self.frontIsShowing {
self.view.transform = CGAffineTransform(scaleX: 1, y: 1)
frontOfCard.alpha = 0
backOfCard.view.alpha = 1
} else {
self.view.transform = CGAffineTransform(scaleX: -1, y: 1)
frontOfCard.transform = CGAffineTransform(scaleX: -1, y: 1)
frontOfCard.alpha = 1
backOfCard.view.alpha = 0
}
self.frontIsShowing = !self.frontIsShowing
}, completion: nil)
Run Code Online (Sandbox Code Playgroud)
堆叠中的卡片数量始终为3.对于前3张卡片,点击卡片会改变卡片的值,frontIsShowing但不会显示卡片的翻转.如果我刷掉前3个,那么之后的任何卡都会按预期运行.动画将显示,一切都会很好.
有什么想法可以在这里发生什么?
编辑:此外,不确定是否相关,但在卡片4进行第一次翻转动画时,我看到alphas过渡通过淡入/淡出而不是卡片翻转.在第二次点击是我看到翻转动画.再次,不确定是否相关,但我想提到.
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |