44 lines
983 B
Swift
44 lines
983 B
Swift
//
|
|
// AutoLayoutWrapperView.swift
|
|
// ReactNativeIosContextMenu
|
|
//
|
|
// Created by Dominic Go on 11/19/23.
|
|
//
|
|
|
|
import UIKit
|
|
import ReactNativeIosUtilities
|
|
|
|
class AutoLayoutWrapperView: UIView {
|
|
|
|
public override var frame: CGRect {
|
|
willSet {
|
|
self.updateSizeOfSubviews(newSize: newValue.size);
|
|
}
|
|
};
|
|
|
|
override func addSubview(_ view: UIView) {
|
|
if let detachedView = view as? RNIDetachedView {
|
|
try? detachedView.updateBounds(newSize: self.bounds.size);
|
|
};
|
|
|
|
super.addSubview(view);
|
|
}
|
|
|
|
override func layoutSubviews() {
|
|
super.layoutSubviews();
|
|
self.updateSizeOfSubviews();
|
|
};
|
|
|
|
override func updateConstraints() {
|
|
super.updateConstraints();
|
|
self.updateSizeOfSubviews();
|
|
};
|
|
|
|
func updateSizeOfSubviews(newSize: CGSize? = nil){
|
|
self.subviews.forEach {
|
|
guard let detachedView = $0 as? RNIDetachedView else { return };
|
|
try? detachedView.updateBounds(newSize: newSize ?? self.bounds.size);
|
|
};
|
|
};
|
|
};
|