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