簡體   English   中英

iOS按鈕在自定義視圖中不起作用

[英]iOS Button not work in custom view

有兩個自定義視圖-viewA和viewB.ViewB是在viewA中添加的一個小視圖。 首先,在整個屏幕中填充視圖A。 ViewB位於viewA的底部(屏幕外)。 當單擊viewA中的按鈕時,viewB約束的底部常量將為-100,因此viewB將顯示在屏幕底部。 但是viewB中有一個按鈕沒有響應其選擇器。 這是我的代碼:

在ViewA中

let viewB: ViewB = {
    let view = ViewB(
    view.setup()
    return view
}()

viewB約束:

    viewB.snp.makeConstraints { (make) in
        make.trailing.leading.equalTo(self)
        make.height.equalTo(100)
        make.top.equalTo(self.snp.bottom)
    }

當單擊按鈕引起視圖B時

            UIView.animate(withDuration: 0.5) {
            self.snp.updateConstraints({ (make) in
                make.bottom.equalTo(-100)
            })
        }
        self.layoutIfNeeded()

在viewB中:

class ViewB: UIView {

let b: UIButton = {
    let button = UIButton(type: UIButtonType.custom)
    button.addTarget(self, action: #selector(btnClicked), for: UIControlEvents.touchUpInside)
    button.backgroundColor = UIColor.green
    button.setTitle("Button", for: .normal)
    return button
}()


func btnClicked() {
   print("btnClicked")
}

func setup() {
    addSubview(b)
    b.snp.makeConstraints { (make) in
        make.leading.top.bottom.equalTo(self)
        make.width.equalTo(100)
    }

}
}

查看調試器

您的代碼本身可以正常工作。 因此,問題可能出在類似按鈕被另一個執行觸摸操作的視圖所覆蓋的事情上。 您可以使用視圖調試器對此進行測試,也可以提供指向您項目的鏈接,以便我們中的一個可以看看發生了什么。

我認為,您的視圖將超出其超級視圖,或者任何其他視圖將進入其上層。 請看這里

superview.clipsToBounds :  YES

暫無
暫無

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

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