You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

80 lines
2.3 KiB

//
// UIViewExtension.swift
// GMERemittance
//
// Created by Fm-user on 12/23/17.
// Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
import UIKit
import VisualEffectView
extension UIView {
func rounded() {
self.layer.cornerRadius = self.frame.height / 2
}
func addBlur() {
let visualEffectView = VisualEffectView(frame: self.frame)
visualEffectView.colorTint = .clear
visualEffectView.colorTintAlpha = 0.2
visualEffectView.blurRadius = 3
visualEffectView.scale = 1
visualEffectView.isUserInteractionEnabled = false
self.addSubview(visualEffectView)
}
}
extension UIView {
func fadeIn(duration: TimeInterval = 1.0, delay: TimeInterval = 0.0, completion: @escaping ((Bool) -> Void) = {(finished: Bool) -> Void in}) {
UIView.animate(withDuration: duration, delay: delay, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.alpha = 1.0
}, completion: completion)
}
func fadeOut(duration: TimeInterval = 1.0, delay: TimeInterval = 3.0, completion: @escaping (Bool) -> Void = {(finished: Bool) -> Void in}) {
UIView.animate(withDuration: duration, delay: delay, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.alpha = 0.0
}, completion: completion)
}
}
// MARK: - Animator
extension UIView {
func bottomToOrigin(duration: Double = 0.3) {
let transform = CGAffineTransform(translationX: 0, y: self.bounds.height * 2)
self.transform = transform
let animator = UIViewPropertyAnimator(
duration: duration,
curve: .linear
){
let transform = CGAffineTransform(translationX: 0, y: 0)
self.transform = transform
}
animator.startAnimation()
}
func originToBottom(duration: Double = 0.3, completion: @escaping () -> Void ) {
let transform = CGAffineTransform(translationX: 0, y: 0)
self.transform = transform
let animator = UIViewPropertyAnimator(
duration: duration,
curve: .linear){
let transform = CGAffineTransform(translationX: 0, y: self.bounds.height * 2)
self.transform = transform
}
animator.addCompletion { _ in
completion()
}
animator.startAnimation()
}
}