簡體   English   中英

從屏幕右側向左滑動UIView

[英]Slide in the UIView from Right of screen to left

我正在開發應用程序,其中正在顯示UITableView。 在UITableView的頂部,有一個按鈕過濾器。 現在,在該按鈕上單擊,我要對UIVIEW進行動畫處理,以從屏幕的右側到屏幕的左側進行動畫處理。 而且它必須動畫,直到達到屏幕的70%的寬度。

現在,這樣做會使上一個視圖變暗,我希望使外觀和感覺像android中的Navigation抽屜一樣。 但這只會在該UIView中顯示“過濾器”設置。

我搜索了一下,那里有太多的庫可以執行我想要的任務,但是我想自己編寫代碼並為UIView或Nib設計制作動畫。

無論如何,無需使用任何庫或任何東西就能執行我想要的嗎? 請讓我知道我正在等待。 提前致謝。

如果您正在使用“自動版式”,則可以通過播放視圖的約束輕松地執行動畫。 您可以將視圖的尾錨限制為視圖的前錨(視圖將不在屏幕上),在代碼中添加對約束的引用(通過添加IBOutlet),並在要顯示或隱藏它時使用其常量(例如,您可以將常數設置為等於要顯示的視圖的寬度)。

現在,這樣做會使上一個視圖變暗,我希望使外觀和感覺像android中的Navigation抽屜一樣。 但這只會在該UIView中顯示“過濾器”設置。

要實現此效果,您可以在表格視圖的頂部添加黑色視圖並調整其Alpha值。 隱藏“滑入UIView”后,您可以將其隱藏,而在顯示時,則可以顯示它。

在這種情況下,我喜歡為視圖設置動畫的方式是在視圖上使用一種變換-這樣可以保留視圖的布局和外觀,並且通常比改變視圖的寬度更好。

UIView.animate(withDuration: 0.35, animations: {

   let moveLeft = CGAffineTransform(translationX: -(view.bounds.width * 0.7), y: 0.0)
    viewController.view.transform = moveLeft

})

要將視圖返回其正常位置,只需使用0.0作為translationX值再次設置變換即可。

UIView.animate(withDuration: 0.35, animations: {

   let zero = CGAffineTransform(translationX: 0.0, y: 0.0)
    viewController.view.transform = zero

})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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