在 UIViewcontroller 中有一个自定义的 UIView

having a custom UIView in a UIViewcontroller

我创建了一个 UIView class 并在 viewcontroller 中实现了它。但是,我希望能够与之交互的视图控制器中还有其他一些东西,但由于附加的视图,我不能这样做。

当自定义 uiview 出现在 viewcontroller

中时,我如何与基础 viewcontroller 交互
var tripView: TripView!

    override func viewDidLoad() {
        super.viewDidLoad()
        tripView = TripView(frame: CGRect.zero)
        self.view.addSubview(tripView)
        // AutoLayout
        tripView.autoPinEdgesToSuperviewEdges(with: UIEdgeInsets.zero)

    }

你可以做到

class TripView:UIView {

    // add this
class TransView:UIView {

    var imgV1:UIImageView!
    var imgV2:UIImageView!

    override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {

        return imgV1.frame.contains(point) ||  imgV2.frame.contains(point) // or ![imgV1,imgV2].filter{[=10=].frame.contains(point)}.isEmpty
    }

}

您应该使用 UIView 中的以下方法为您的视图分配适当的索引。
实例方法:aboveSubview and belowSubviewinsertSubview .

From UIView overview

视图可以嵌套在其他视图中以创建视图层次结构,这提供了一种组织相关内容的便捷方式。嵌套视图会在被嵌套的子视图(称为子视图)和父视图(称为超视图)之间创建父子关系。父视图可以包含任意数量的子视图,但每个子视图只有一个父视图。默认情况下,当子视图的可见区域超出其父视图的边界时,不会裁剪子视图的内容。
希望对您有所帮助!