// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. import UIKit public extension UIView { func toImage(isOpaque: Bool, scale: CGFloat) -> UIImage? { let format = UIGraphicsImageRendererFormat() format.scale = scale format.opaque = isOpaque let renderer = UIGraphicsImageRenderer(bounds: self.bounds, format: format) return renderer.image { context in self.layer.render(in: context.cgContext) } } class func spacer(withWidth width: CGFloat) -> UIView { let view = UIView() view.set(.width, to: width) return view } class func spacer(withHeight height: CGFloat) -> UIView { let view = UIView() view.set(.height, to: height) return view } class func hStretchingSpacer() -> UIView { let view = UIView() view.setContentHuggingPriority(.defaultLow, for: .horizontal) view.setContentCompressionResistancePriority(UILayoutPriority(0), for: .horizontal) return view } class func vStretchingSpacer() -> UIView { let view = UIView() view.setContentHuggingPriority(.defaultLow, for: .vertical) view.setContentCompressionResistancePriority(UILayoutPriority(0), for: .vertical) return view } static func hSpacer(_ width: CGFloat) -> UIView { let result: UIView = UIView() result.set(.width, to: width) return result } static func vSpacer(_ height: CGFloat) -> UIView { let result: UIView = UIView() result.set(.height, to: height) return result } static func vhSpacer(_ width: CGFloat, _ height: CGFloat) -> UIView { let result: UIView = UIView() result.set(.width, to: width) result.set(.height, to: height) return result } static func separator() -> UIView { let result: UIView = UIView() result.set(.height, to: Values.separatorThickness) result.themeBackgroundColor = .borderSeparator return result } }