Files
omnivore/apple/OmnivoreKit/Sources/Utils/UIViewControllerExtensions.swift
2022-02-23 08:31:12 -08:00

49 lines
1.5 KiB
Swift

#if os(iOS)
import UIKit
public extension UIViewController {
func embed(childViewController child: UIViewController, heightRatio: CGFloat? = nil) {
addChild(child)
child.view.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(child.view)
var constraints = [
child.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
child.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
child.view.bottomAnchor.constraint(equalTo: view.bottomAnchor)
]
if let heightRatio = heightRatio {
constraints.append(child.view.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: heightRatio))
} else {
constraints.append(child.view.topAnchor.constraint(equalTo: view.topAnchor))
}
NSLayoutConstraint.activate(constraints)
child.didMove(toParent: self)
}
}
#endif
#if os(macOS)
import AppKit
public extension NSViewController {
func embed(childViewController child: NSViewController) {
addChild(child)
child.view.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(child.view)
NSLayoutConstraint.activate([
child.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
child.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
child.view.topAnchor.constraint(equalTo: view.topAnchor),
child.view.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
}
}
#endif