ViewController를 아래에서 위로 전환하는 방법은 무엇입니까?

OhhhThatVarun

그래서 여기 왼쪽에서 오른쪽으로 애니메이션이 있는 ViewController를 추가하는 전환 슬라이드 클래스가 있으며 완벽하게 작동합니다. 아래에서 위로 전환을 원합니다.

import UIKit

class SlideInTransition: NSObject, UIViewControllerAnimatedTransitioning {

    var isPresenting = false
    let dimmingView = UIView()

    func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
        return 0.3
    }

    func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {

        guard let toViewController = transitionContext.viewController(forKey: .to),
            let fromViewController = transitionContext.viewController(forKey: .from) else { return }

        let containerView = transitionContext.containerView

        let finalWidth = toViewController.view.bounds.width * 0.8
        let finalHeight = toViewController.view.bounds.height

        if isPresenting {
            // Add dimming view
            dimmingView.backgroundColor = .black
            dimmingView.alpha = 0.0
            containerView.addSubview(dimmingView)
            dimmingView.frame = containerView.bounds
            // Add menu view controller to container
            containerView.addSubview(toViewController.view)

            // Init frame off the screen
            toViewController.view.frame = CGRect(x: -finalWidth, y: 0, width: finalWidth, height: finalHeight)
        }

        // Move on screen
        let transform = {
            self.dimmingView.alpha = 0.5
            toViewController.view.transform = CGAffineTransform(translationX: finalWidth, y: 0)
        }

        // Move back off screen
        let identity = {
            self.dimmingView.alpha = 0.0
            fromViewController.view.transform = .identity
        }

        // Animation of the transition
        let duration = transitionDuration(using: transitionContext)
        let isCancelled = transitionContext.transitionWasCancelled
        UIView.animate(withDuration: duration, animations: {
            self.isPresenting ? transform() : identity()
        }) { (_) in
            transitionContext.completeTransition(!isCancelled)
        }
    }

}

솔직히 말해서 나는 이 코드를 얼마 전에 어딘가에서 복사했고 소스가 없습니다.

저는 iOS에 익숙하지 않으므로 도움을 주시면 감사하겠습니다.

압둘 카림 칸 |

이 시도,

class SlideInTransition: NSObject, UIViewControllerAnimatedTransitioning {

    var isPresenting = false
    let dimmingView = UIView()

    func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
        return 0.3
    }

    func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {

        guard let toViewController = transitionContext.viewController(forKey: .to),
            let fromViewController = transitionContext.viewController(forKey: .from) else { return }

        let containerView = transitionContext.containerView

        let finalWidth = toViewController.view.bounds.width
        let finalHeight = toViewController.view.bounds.height * 0.8

        if isPresenting {
            // Add dimming view
            dimmingView.backgroundColor = .black
            dimmingView.alpha = 0.0
            containerView.addSubview(dimmingView)
            dimmingView.frame = containerView.bounds
            // Add menu view controller to container
            containerView.addSubview(toViewController.view)

            // Init frame off the screen
            toViewController.view.frame = CGRect(x: 0, y: finalHeight, width: finalWidth, height: finalHeight)
        }

        // Move on screen
        let transform = {
            self.dimmingView.alpha = 0.5
            toViewController.view.transform = CGAffineTransform(translationX: 0, y: -finalHeight)
        }

        // Move back off screen
        let identity = {
            self.dimmingView.alpha = 0.0
            fromViewController.view.transform = .identity
        }

        // Animation of the transition
        let duration = transitionDuration(using: transitionContext)
        let isCancelled = transitionContext.transitionWasCancelled
        UIView.animate(withDuration: duration, animations: {
            self.isPresenting ? transform() : identity()
        }) { (_) in
            transitionContext.completeTransition(!isCancelled)
        }
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

전환과 함께 상위 부문 아래에서 div를 표시하는 방법은 무엇입니까?

UITableView를 아래쪽에서 위로 채우는 방법은 무엇입니까?

탭 모음 iOS에서 ViewController에서 ViewController로 데이터를 전달하는 방법은 무엇입니까?

사용자 정의 셀 클래스에서 viewController로 정보를 "전달"하는 방법은 무엇입니까?

PyCharm의 클래스에서 함수를 아래 (위)로 이동하는 방법은 무엇입니까?

CSS3에서 무한히 div를 위아래로 이동하는 방법은 무엇입니까?

CSS에서 div를 무한히 위아래로 이동하는 방법은 무엇입니까?

열에서 아래로 표를 표시하는 방법은 무엇입니까?

Eclipse에서 프로젝트를 위 / 아래로 이동하는 방법은 무엇입니까?

div를 위에서 아래로 애니메이션하는 방법은 무엇입니까? 별똥별처럼

div를 멈추지 않고 아래에서 위로 애니메이션하는 방법은 무엇입니까?

ListView로 요소를 서로 아래에 두는 방법은 무엇입니까?

요소의 위치를 옆에서 아래로 변경하는 방법은 무엇입니까?

Android 용 XML에서 Animator 슬라이드를 위 / 아래로 빌드하는 방법은 무엇입니까?

텍스트를 아래에서 위로 시작하는 방법은 무엇입니까?

2 열의 데이터를 위에서 아래로 분할하는 방법은 무엇입니까?

jQuery에서 추가 텍스트를 위아래로 슬라이드하는 방법은 무엇입니까?

Android 용 XML에서 Animator 슬라이드를 위 / 아래로 빌드하는 방법은 무엇입니까?

xaml에서 DataTrigger로 제어를 전환하는 방법은 무엇입니까?

Xamarin에서 프로그래밍 방식으로 NavigationViewController를 전환하는 방법은 무엇입니까?

프로그래밍 방식으로 AppDelegate에서 초기 ViewController를 설정하는 방법은 무엇입니까?

프로그래밍 방식으로 AppDelegate에서 초기 viewController를 설정하는 방법은 무엇입니까?

동일한 div를 클릭 할 때 위에서 아래로, 아래에서 위로 천천히 스크롤하는 방법은 무엇입니까?

레이아웃에서 2 개의 TextView 위치를 전환하는 방법은 무엇입니까?

Facebook에서 로그 아웃하고 사용자를 전환하는 방법은 무엇입니까?

jquery로 활성 클래스를 전환하는 방법은 무엇입니까?

신속한 클래스를 ViewController로 lmport하는 방법은 무엇입니까?

아래 코드에서 객체를 MySQLi로 변환하는 방법은 무엇입니까?

서로 segue하지 않는 viewController간에 정보를 전달하는 방법은 무엇입니까?

TOP 리스트

뜨겁다태그

보관