如何让table 视图在swift 3 中的所有设备中显示为翻转动画?
How to make table view to display like flip animation in all devices in swift 3?
在所有设备中,table 视图只需要显示屏幕的 70%,无论所有设备如何,它应该只需要从下到上显示动画,如果我 select屏幕上的任何地方它应该转到下面并用动画隐藏我试过但无法实现它任何人都可以帮助我如何实现这个?
这是我的代码
@IBAction func addtoCartButtonAction(_ sender: Any) {
UIView.animate(withDuration: 0.5, delay: 0.0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.addToCartTableView.isHidden = false
self.addToCartTableView.delegate = self
self.addToCartTableView.dataSource = self
self.addToCartTableView.reloadData()
self.addToCartTableView.frame.origin.y = 200
}) { (Bool) in
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
UIView.animate(withDuration: 1, delay: 0.3, options: .autoreverse, animations: {
}) { (Bool) in
self.addToCartTableView.isHidden = true
}
}
@IBAction func AddtoCartTableViewCloseButtonAction(_ sender: Any) {
self.addToCartTableView.isHidden = true
}
为此您可以使用 CGAffineTransform
。
例如:
在 viewWillAppear()
中执行此操作:
addToCartTableView.alpha = 0.0
addToCartTableView.transform = CGAffineTransform(translationX: addToCartTableView.bounds.origin.x, y: self.view.bounds.height)
然后在您的按钮操作中 addtoCartButtonAction
执行此操作:
UIView.animate(withDuration: 0.5, delay: 0.0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.addToCartTableView.delegate = self
self.addToCartTableView.dataSource = self
self.addToCartTableView.reloadData()
self.addToCartTableView.transform = .identity
self.addToCartTableView.alpha = 1.0
}) { (Bool) in
}
然后在您的视图上点击手势,每当您想再次隐藏它时,请执行此操作:
UIView.animate(withDuration: 0.5, delay: 0.0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.addToCartTableView.transform = CGAffineTransform(translationX: addToCartTableView.bounds.origin.x, y: self.view.bounds.height)
self.addToCartTableView.alpha = 0.0
}) { (Bool) in
}
此外,您不应在按钮操作中分配 self.addToCartTableView.delegate = self
self.addToCartTableView.dataSource = self
。仅在 viewDidLoad()
或 storyboard
中执行此操作。
在所有设备中,table 视图只需要显示屏幕的 70%,无论所有设备如何,它应该只需要从下到上显示动画,如果我 select屏幕上的任何地方它应该转到下面并用动画隐藏我试过但无法实现它任何人都可以帮助我如何实现这个?
这是我的代码
@IBAction func addtoCartButtonAction(_ sender: Any) {
UIView.animate(withDuration: 0.5, delay: 0.0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.addToCartTableView.isHidden = false
self.addToCartTableView.delegate = self
self.addToCartTableView.dataSource = self
self.addToCartTableView.reloadData()
self.addToCartTableView.frame.origin.y = 200
}) { (Bool) in
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
UIView.animate(withDuration: 1, delay: 0.3, options: .autoreverse, animations: {
}) { (Bool) in
self.addToCartTableView.isHidden = true
}
}
@IBAction func AddtoCartTableViewCloseButtonAction(_ sender: Any) {
self.addToCartTableView.isHidden = true
}
为此您可以使用 CGAffineTransform
。
例如:
在 viewWillAppear()
中执行此操作:
addToCartTableView.alpha = 0.0
addToCartTableView.transform = CGAffineTransform(translationX: addToCartTableView.bounds.origin.x, y: self.view.bounds.height)
然后在您的按钮操作中 addtoCartButtonAction
执行此操作:
UIView.animate(withDuration: 0.5, delay: 0.0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.addToCartTableView.delegate = self
self.addToCartTableView.dataSource = self
self.addToCartTableView.reloadData()
self.addToCartTableView.transform = .identity
self.addToCartTableView.alpha = 1.0
}) { (Bool) in
}
然后在您的视图上点击手势,每当您想再次隐藏它时,请执行此操作:
UIView.animate(withDuration: 0.5, delay: 0.0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.addToCartTableView.transform = CGAffineTransform(translationX: addToCartTableView.bounds.origin.x, y: self.view.bounds.height)
self.addToCartTableView.alpha = 0.0
}) { (Bool) in
}
此外,您不应在按钮操作中分配 self.addToCartTableView.delegate = self
self.addToCartTableView.dataSource = self
。仅在 viewDidLoad()
或 storyboard
中执行此操作。