2017-04-25 49 views
2

我有一個UIButton位於我的屏幕與約束。 (不居中)。我只需要執行一些動畫,它會在屏幕外部啓動它,看不到它,並讓它滑入。一個按鈕從左向右滑動,另一個按鈕從右向左滑動。他們需要能夠從屏幕上退出。我需要得到一個UIButton飛入屏幕

我已經嘗試使用button.frame.origin.x = 0 - 按鈕及其寬度。我把它放在視圖中,確實保持原來的位置。我的計劃是保存它的原始中心,然後生動地滑入我保存的原始中心。那麼沒有任何工作。

我所有的方法都沒有工作,所以我剛剛刪除它,我正在找人請從頭開始展示我如何去做這件事。任何關於cgpoints,中心,和任何有關我需要閱讀掌握這項技術的材料也將非常感謝。

此外請保持一切迅速。

謝謝!

回答

0

我有一個帶有滑塊和按鈕的「工具板」類。它在邏輯上「附加」到「工具欄」。當你點擊欄上的一個按鈕時,電路板就會動畫地「滑動」出來。

根據您的需求調整我的約束條件,這就是我要做的。

(1)將寬度約束設置爲0以不顯示按鈕。

let myButton = UIButton() 
let myConstraint = myButton.widthAnchor.constraint(equalToConstant: 0) 
myConstraint.isActive = true 

(2)然後,當你希望它在屏幕上移動,重置寬度和動畫處理:

myConstraint.constant = 100 
UIView.animate(withDuration: 0.3) { self.superview?.layoutIfNeeded() } 

當然,你還需要其他的約束聲明,並且這種約束需要比這些範圍更廣泛。例如,如果你想讓事情脫離屏幕,它的起源可以是CGPoint.zero或其他任何東西,但最終的地方是你定義的東西。關鍵是(a)改變約束條件,嘗試而不是來替換它們,然後(b)動畫變化。

+0

嘿,我爲延遲道歉。我非常感謝你的幫助,但我對swift有點新,所以我不知道你在代碼中做了什麼。與其讓你詳細解釋所有事情,並且長時間聊天,我只是花時間查看自己在約束條件下所做的工作以及工作方式。在弄亂它之後,我想我已經掌握了它,但是我遇到了一個動畫錯誤。如果你想在那裏幫助我,我將不勝感激.http://stackoverflow.com/questions/43647445/i-am-trying-to-animate-my-unbutton-with-a-constraint-and-the- animation-is-not-wo – AdrianGutierrez

+0

我在想這是一個正確的答案。 (我在這裏其實還是個新手)。也許我沒有強調它 - 但是你真的需要**(1)改變你的約束**,然後* **(2)動畫**。我會在你的新問題中發表評論,但這是我最近看到的一個常見錯誤。不要在動畫中更改約束...更改它們,然後*然後*生成動畫。 – dfd