Files
OrderScheduling/Pods/SwiftEntryKit/Source/Extensions/QuickLayout/UIView+QLContentWrap.swift
DDIsFriend f0e8a1709d initial
2023-08-18 17:28:57 +08:00

112 lines
3.0 KiB
Swift

//
// QLView+QLContentWrap.swift
// QuickLayout
//
// Created by Daniel Huri on 11/21/17.
//
import Foundation
import UIKit
// MARK: Content Compression Resistance & Content Hugging Priority
public extension QLView {
/**
Force hugging and compression resistance for the given axes, using variadic parameter.
- parameter axes: The axes
*/
func forceContentWrap(_ axes: QLAxis...) {
if axes.contains(.vertically) {
verticalHuggingPriority = .required
verticalCompressionResistancePriority = .required
}
if axes.contains(.horizontally) {
horizontalHuggingPriority = .required
horizontalCompressionResistancePriority = .required
}
}
/**
Force hugging and compression resistance vertically and horizontally.
*/
func forceContentWrap() {
contentHuggingPriority = .required
contentCompressionResistancePriority = .required
}
/**
Vertical hugging priority
*/
var verticalHuggingPriority: QLPriority {
set {
setContentHuggingPriority(newValue, for: .vertical)
}
get {
return contentHuggingPriority(for: .vertical)
}
}
/**
Horizontal hugging priority
*/
var horizontalHuggingPriority: QLPriority {
set {
setContentHuggingPriority(newValue, for: .horizontal)
}
get {
return contentHuggingPriority(for: .horizontal)
}
}
/**
Content hugging priority (Vertical & Horizontal)
*/
var contentHuggingPriority: QLPriorityPair {
set {
horizontalHuggingPriority = newValue.horizontal
verticalHuggingPriority = newValue.vertical
}
get {
return QLPriorityPair(horizontalHuggingPriority, verticalHuggingPriority)
}
}
/**
Vertical content compression resistance priority
*/
var verticalCompressionResistancePriority: QLPriority {
set {
setContentCompressionResistancePriority(newValue, for: .vertical)
}
get {
return contentCompressionResistancePriority(for: .vertical)
}
}
/**
Horizontal content compression resistance priority
*/
var horizontalCompressionResistancePriority: QLPriority {
set {
setContentCompressionResistancePriority(newValue, for: .horizontal)
}
get {
return contentCompressionResistancePriority(for: .horizontal)
}
}
/**
Content compression resistance priority (Vertical & Horizontal)
*/
var contentCompressionResistancePriority: QLPriorityPair {
set {
horizontalCompressionResistancePriority = newValue.horizontal
verticalCompressionResistancePriority = newValue.vertical
}
get {
return QLPriorityPair(horizontalCompressionResistancePriority, verticalCompressionResistancePriority)
}
}
}