vds_ios/VDS/Extensions/UIView+NSLayoutConstraint.swift

60 lines
1.5 KiB
Swift

//
// UIView.swift
// VDS
//
// Created by Matt Bruce on 11/17/22.
//
import Foundation
import UIKit
import VDSCoreTokens
extension UIView {
public func constraint(with identifier: String) -> NSLayoutConstraint? {
return constraints.first { $0.identifier == identifier }
}
}
extension NSLayoutConstraint {
@discardableResult
/// Activates yourself
/// - Returns: Self
public func activate() -> Self{
isActive = true
return self
}
@discardableResult
/// Deactivates yourself
/// - Returns: Self
public func deactivate() -> Self{
isActive = false
return self
}
/// Helper class that holds onto all types of Contraints.
public class Container {
public var topConstraint: NSLayoutConstraint?
public var leadingConstraint: NSLayoutConstraint?
public var trailingConstraint: NSLayoutConstraint?
public var bottomConstraint: NSLayoutConstraint?
public var widthConstraint: NSLayoutConstraint?
public var heightConstraint: NSLayoutConstraint?
public var isActive: Bool = false {
didSet {
topConstraint?.isActive = isActive
bottomConstraint?.isActive = isActive
leadingConstraint?.isActive = isActive
trailingConstraint?.isActive = isActive
heightConstraint?.isActive = isActive
widthConstraint?.isActive = isActive
}
}
public init(){}
}
}