Skip to content

kidap/SimpleAnimations1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SimpleAnimations1

Card flipping

Card

func animate() {
    if isOpen {
        initialState()
        UIView.transition(with: self, duration: 0.3, options: .transitionFlipFromLeft, animations: {
            self.transform = CGAffineTransform.identity
            self.superview?.backgroundColor = .white
        }, completion: nil)
    } else {
        finalState()
        UIView.transition(with: self, duration: 0.3, options: .transitionFlipFromRight, animations: {
            self.transform = CGAffineTransform.init(scaleX: 1.75, y: 1.75)
            self.superview?.backgroundColor = .lightGray
        }, completion: nil)
    }
    
    isOpen = !isOpen
}

func animate(by fraction: CGFloat) {
    viewAnimator.fractionComplete = fraction
}

func initialState() {
    setImage(#imageLiteral(resourceName: "backCard"), for: .normal)
    imageView?.contentMode = .scaleAspectFill
}

func finalState() {
    backgroundColor = .pastelYellow
    setImage(#imageLiteral(resourceName: "frontCard"), for: .normal)
    imageView?.contentMode = .scaleAspectFit
}

func setupAnimator() {
    viewAnimator = UIViewPropertyAnimator(duration: 0.3, dampingRatio: 0.9, animations: {
        self.finalState()
        
    })
    
    viewAnimator.pausesOnCompletion = true
}

Slider

Slider

func animate() {
    viewAnimator.startAnimation()
}

func animate(by fraction: CGFloat) {
    viewAnimator.fractionComplete = fraction
}

func initialState() {
    viewAnimator = UIViewPropertyAnimator(duration: 1, dampingRatio: 1, animations: {
        self.finalState()
    })
    viewAnimator.pausesOnCompletion = true
}

func finalState() {
    backgroundColor = .pastelGreen
    transform = CGAffineTransform(rotationAngle: CGFloat.pi - 1)
    layer.cornerRadius = bounds.width / 2
}

Bouncing button

Bouncing

func animate() {
    viewAnimator.startAnimation()
}

func setupAnimator() {
    viewAnimator = UIViewPropertyAnimator(duration: 0.6, dampingRatio: 0.9, animations: {
        self.transform = CGAffineTransform.init(scaleX: 1.5, y: 1.5)
    })
    
    viewAnimator.addAnimations {
        self.transform = CGAffineTransform.identity
    }
}

Banner

Banner

func animate() {
    isReversed = isShown
    viewAnimator.startAnimation()
    isShown = !isShown
}

func animate(by fraction: CGFloat) {
    viewAnimator.fractionComplete = fraction
}

func initialState() {
    bottomConstraint.constant = 0
}

func finalState() {
    bottomConstraint.constant = bannerHeight + borderWidtch + view.safeAreaInsets.top
}

func setupAnimator() {
    viewAnimator = UIViewPropertyAnimator(duration: 0.25, curve: .easeOut) {
        self.finalState()
        self.view.layoutIfNeeded()
    }
    
    viewAnimator.pausesOnCompletion = true
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages