You can override hitTest(_:withEvent:) to ignore the view itself, but still deliver touches to its subviews.
class ContainerStackView : UIStackView {
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let result = super.hitTest(point, with: event)
if result == self { return nil }
return result
}
}