![](/img/trans.png)
[英]Implementing UIPageViewController's logic as a subview to a UIViewController in Swift
[英]subView of UIPageViewController not animating Subview? Swift 4
經過許多令人沮喪的時間和一個不滿意的客戶,我決定來這里。
這是我的pageController的第一個子視圖類中的viewDidAppear
override func viewDidAppear(_ animated: Bool) {
print("hello")
self.view.layoutIfNeeded()
self.averageWorkSessions.shapeLayer.strokeEnd = 0
UIView.animate(withDuration: 0.5) {
let average = CGFloat(self.averageWorkSessions.average / 10)
self.averageWorkSessions.shapeLayer.strokeEnd = average
if !(average > 0.0){
self.averageWorkSessions.Title.text = "N/A"
}
self.view.layoutIfNeeded()
}
}
考慮一下
averageWorkSessions是具有自定義組件的自定義視圖,但它仍然是UIView的子類。
這是頁面控制器的一部分,無論如何都可能與此問題相關
lazy var subViewControllers: [UIViewController] = {
return [
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Stats1") as! StatisticsViewController ,
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Stats2") as! Statistics2ViewController ,
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Stats3") as! Statistics3ViewController
]
}()
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
self.dataSource = self
setViewControllers([subViewControllers[0]], direction: .forward , animated: true, completion: nil)
self.view.layoutIfNeeded()
}
簡潔版本
為什么這不能正確設置動畫? 印刷品“ hello”完全按預期工作...為什么我的動畫沒有?
我認為問題在於您正在UIView.animate()
內設置self.averageWorkSessions.shapeLayer.strokeEnd
self.view.layoutIfNeeded()
應該在UIView.animate()
內部,但是設置常量不應該在UIView.animate()
內部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.