簡體   English   中英

沒有調用Subview Gesture Recognizer

[英]Subview Gesture Recognizer not being called

我在自定義UIView.to中正常運行UITapGestureRecognizer時遇到問題。 我創建了一個視圖:CategoryViewButton,它在init中添加了一個UITapGestureRecognizer:

class CategoryViewButton: UIView {

override init(frame: CGRect) {
    super.init(frame: frame)
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap))
    self.addGestureRecognizer(tapGesture)
 }

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
 }

func handleTap() {
    print("Hello again")
 }
}

直接在視圖控制器中添加時,此手勢識別器可以正常工作。 但是,當我將CategoryViewButton添加為另一個自定義視圖的子視圖時,不會調用手勢識別器方法。 我的子視圖:

class CategoryView: UIView, CategoryButtonDelegate {

var button : CategoryViewButton?

override init(frame: CGRect) {
    super.init(frame: frame)
    button = CategoryViewButton(frame: CGRect(x: 10, y: 0, width: 40, height: 25))
    self.addSubview(button!)
    self.bringSubview(toFront: button!)
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
 }
}

當我在View Controller中創建CategoryView時,不會調用handleTap()函數。 我錯過了什么?

對於任何好奇的人來說,問題是帶有手勢識別器的子視圖超出了superview的框架。 這意味着即使正在繪制視圖,也未檢測到手勢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM