Using the frame layout for view wrapper instead of Autolayout. Solve the issue when running on AppKit (not Catalyst)
This commit is contained in:
parent
c052f22865
commit
4bdec6c958
|
@ -31,34 +31,26 @@ public class AnimatedImageViewWrapper : PlatformView {
|
||||||
ctx.setShouldAntialias(shouldAntialias)
|
ctx.setShouldAntialias(shouldAntialias)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if os(macOS)
|
||||||
|
public override func layout() {
|
||||||
|
super.layout()
|
||||||
|
wrapped.frame = self.bounds
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
public override func layoutSubviews() {
|
||||||
|
super.layoutSubviews()
|
||||||
|
wrapped.frame = self.bounds
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
public override init(frame frameRect: CGRect) {
|
public override init(frame frameRect: CGRect) {
|
||||||
super.init(frame: frameRect)
|
super.init(frame: frameRect)
|
||||||
addSubview(wrapped)
|
addSubview(wrapped)
|
||||||
wrapped.bindFrameToSuperviewBounds()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public required init?(coder: NSCoder) {
|
public required init?(coder: NSCoder) {
|
||||||
super.init(coder: coder)
|
super.init(coder: coder)
|
||||||
addSubview(wrapped)
|
addSubview(wrapped)
|
||||||
wrapped.bindFrameToSuperviewBounds()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension PlatformView {
|
|
||||||
/// Adds constraints to this `UIView` instances `superview` object to make sure this always has the same size as the superview.
|
|
||||||
/// Please note that this has no effect if its `superview` is `nil` – add this `UIView` instance as a subview before calling this.
|
|
||||||
func bindFrameToSuperviewBounds() {
|
|
||||||
guard let superview = self.superview else {
|
|
||||||
print("Error! `superview` was nil – call `addSubview(view: UIView)` before calling `bindFrameToSuperviewBounds()` to fix this.")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
self.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
self.topAnchor.constraint(equalTo: superview.topAnchor, constant: 0).isActive = true
|
|
||||||
self.bottomAnchor.constraint(equalTo: superview.bottomAnchor, constant: 0).isActive = true
|
|
||||||
self.leadingAnchor.constraint(equalTo: superview.leadingAnchor, constant: 0).isActive = true
|
|
||||||
self.trailingAnchor.constraint(equalTo: superview.trailingAnchor, constant: 0).isActive = true
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue