Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 3.99 KB | None | 0 0
  1. import UIKit
  2.  
  3. extension UIView {
  4.  
  5.     func transactionAnimation(with duration: CFTimeInterval, timingFuncion: CAMediaTimingFunction, animations: () -> Void) {
  6.         CATransaction.begin()
  7.         CATransaction.disableActions()
  8.         CATransaction.setAnimationDuration(duration)
  9.         CATransaction.setAnimationTimingFunction(timingFuncion)
  10.         animations()
  11.         CATransaction.commit()
  12.     }
  13.  
  14.     func pinLeading(toLeadingOf view: UIView, constant: CGFloat) {
  15.         NSLayoutConstraint(item: view,
  16.                            attribute: .leading,
  17.                            relatedBy: .equal,
  18.                            toItem: self,
  19.                            attribute: .leading,
  20.                            multiplier: 1.0,
  21.                            constant: constant).isActive = true
  22.     }
  23.  
  24.     @discardableResult func pinTrailing(toTrailingOf view: UIView, constant: CGFloat) -> NSLayoutConstraint {
  25.         let constraint = NSLayoutConstraint(item: view,
  26.                            attribute: .trailing,
  27.                            relatedBy: .equal,
  28.                            toItem: self,
  29.                            attribute: .trailing,
  30.                            multiplier: 1.0,
  31.                            constant: -constant)
  32.         constraint.isActive = true
  33.         return constraint
  34.     }
  35.  
  36.     @discardableResult func pinTrailing(toLeadingOf view: UIView, constant: CGFloat) -> NSLayoutConstraint {
  37.         let constraint = NSLayoutConstraint(item: view,
  38.                                             attribute: .leading,
  39.                                             relatedBy: .equal,
  40.                                             toItem: self,
  41.                                             attribute: .trailing,
  42.                                             multiplier: 1.0,
  43.                                             constant: -constant)
  44.         constraint.isActive = true
  45.         return constraint
  46.     }
  47.  
  48.     func alignHorizontalAxis(toSameAxisOfView view: UIView) {
  49.         NSLayoutConstraint(item: view,
  50.                            attribute: .centerY,
  51.                            relatedBy: .equal,
  52.                            toItem: self,
  53.                            attribute: .centerY,
  54.                            multiplier: 1.0,
  55.                            constant: 0.0).isActive = true
  56.     }
  57.  
  58.     func pinTop(toTopOf view: UIView, constant: CGFloat) {
  59.         NSLayoutConstraint(item: view,
  60.                            attribute: .top,
  61.                            relatedBy: .equal,
  62.                            toItem: self,
  63.                            attribute: .top,
  64.                            multiplier: 1.0,
  65.                            constant: constant).isActive = true
  66.     }
  67.  
  68.     @discardableResult func pinBottom(toBottomOf view: UIView, constant: CGFloat) -> NSLayoutConstraint {
  69.         let constraint = NSLayoutConstraint(item: view,
  70.                            attribute: .bottom,
  71.                            relatedBy: .equal,
  72.                            toItem: self,
  73.                            attribute: .bottom,
  74.                            multiplier: 1.0,
  75.                            constant: -constant)
  76.         constraint.isActive = true
  77.         return constraint
  78.     }
  79.  
  80.     func pinBottom(toTopOf view: UIView, constant: CGFloat) {
  81.         NSLayoutConstraint(item: self,
  82.                            attribute: .bottom,
  83.                            relatedBy: .equal,
  84.                            toItem: view,
  85.                            attribute: .top,
  86.                            multiplier: 1.0,
  87.                            constant: -constant).isActive = true
  88.     }
  89.  
  90.     func setHeight(to constant: CGFloat) {
  91.         NSLayoutConstraint(item: self,
  92.                            attribute: .height,
  93.                            relatedBy: .equal,
  94.                            toItem: nil,
  95.                            attribute: .notAnAttribute,
  96.                            multiplier: 1.0,
  97.                            constant: constant).isActive = true
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement