2016-02-28 67 views
1

我正在開發一個應用程序,我使用自定義細節在兩個UIViewController之間導航。爲什麼觸發放鬆繼續的按鈕會立即消失?

賽格到第二個UIViewController動畫就好了。但是,當展開順序被觸發時,觸發該按鈕的按鈕會立即消失,同時緩慢地將剩下的動畫製作好。

Gif of the animation

的按鈕是通過故事板設置,並從中我按住Ctrl拖動到該UIViewController的退出。一個放鬆的時間出現了,我建立了所有必要的文件。

我給你我的自定義類的開卷SEGUE現在覆蓋perform() - 方法,像這樣:

override func perform() { 

    let settingsVCView = self.sourceViewController.view 
    let startVCView = self.destinationViewController.view 

    let screenHeight = UIScreen.mainScreen().bounds.size.height 
    let screenWidth = UIScreen.mainScreen().bounds.size.width 

    let window = UIApplication.sharedApplication().keyWindow 
    window?.insertSubview(startVCView, aboveSubview: settingsVCView) 

    UIView.animateWithDuration(0.8, delay: 0, options: .CurveEaseInOut, animations: {() -> Void in 

      settingsVCView.frame = CGRectMake(0, -(screenHeight), screenWidth, screenHeight) 
      startVCView.frame = CGRectMake(0, 0, screenWidth, screenHeight) 

     }) { (finished) -> Void in 

      self.sourceViewController.dismissViewControllerAnimated(false, completion: nil) 

    } 

} 

一切設置,並且動畫效果做這樣你可以在GIF看到。有人會說動畫現在可以正常工作,但那個按鈕的早期消失真的讓我困擾。我想:

  • 調節按鈕高亮狀態
  • 不只是在緊湊型/普通
  • 設置安裝的按鈕,按鈕的系統類型爲自定義
  • 努力探索的確切時刻,按鈕消失通過斷點(找不到它,但發現,即在閉合塊設置的幀是不任一個問題)
  • 評論出dismissViewControllerAnimated:功能

我沒有找到任何解決方案。

+0

難道是突出顯示的背景顏色是相同的綠色?也許嘗試將標題顏色更改爲黑色,以便您可以輕鬆查看顏色差異。或者它可能是自動佈局魔術?您可以創建另一個具有類似約束的按鈕,並查看當您觸摸第一個按鈕時該按鈕是否也會消失。在這裏抓着吸管! – Michael

+0

@邁克爾感謝您的意見!我嘗試了所有的建議,可悲的是一開始沒有任何工作,但你是對的,這是自動佈局魔術。我現在要回答我的問題,爲了其他人的知名度。 – SebastianR

回答

0

我終於通過首先清除該按鈕的所有佈局約束來解決問題。然後我又敲了敲它,它並沒有消失,所以它與限制有關。

This is what the constraint should be set like.

這個錯誤是釘扎的按鈕,頂部佈局指南的頂部約束,而不是視圖頂部。改變這個錨解決了我的問題,我的按鈕停止隱藏:)

相關問題