jo *_*ion 2 animation uiviewcontroller ios swift
我想ViewController用放大/缩小动画从按钮单击呈现,我尝试了一些代码,但它对我不起作用:
func btnClickView(_ sender: UIButton) {
let objImagePreview = ImagePreview(nibName: "ImagePreview", bundle: nil)
let transition = CATransition()
transition.duration = 1
transition.type = kCATransitionMoveIn
transition.subtype = kCATransitionFromTop
transition.timingFunction = CAMediaTimingFunction(name:kCAMediaTimingFunctionEaseInEaseOut)
view.window!.layer.add(transition, forKey: kCATransition)
self.present(objImagePreview, animated: false, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
我想动画UIViewController没有UIView。我尝试了很多东西,但它对我不起作用。
小智 5
我希望这会有所帮助
在第一个视图控制器中将目标 ViewControllervc.modalPresentationStyle = .overCurrentContext设置为在呈现之前,并将动画设置为 false 时像这样
if let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "DestinationViewController") as? DestinationViewController {
vc.modalPresentationStyle = .overCurrentContext
self.present(vc, animated: false, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
然后在 DestinationViewController 中 viewWillAppear 创建像这样的缩放动画
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
view.transform = CGAffineTransform(scaleX: 0.00001, y: 0.00001)
UIView.animate(withDuration: 0.5, animations: { [weak self] in
self?.view.transform = CGAffineTransform.identity
})
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这段代码有效