簡體   English   中英

UIPageViewController的subView不能對Subview進行動畫處理? 斯威夫特4

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM