为什么我不能在模拟器中点击 uibutton 但我可以在我的硬件上点击 iPhone?

why can't I tap uibutton in simulator but I can on my hardware iPhone?

我的视图控制器顶部有两个按钮,它们是模态显示的。奇怪的是,当我在模拟器中单击按钮时,它们根本无法选择。 当我在我的 iPhone.

上使用它们时,这些按钮不会造成任何问题
btn.addTarget(self, action: #selector(sendTapped), for: .touchUpInside)

这就是我将功能添加到按钮的方式

整个按钮代码:

let post: UIButton = {
        let btn = UIButton()

        btn.frame = CGRect(x: 0, y: 0, width: 60, height: 30)
        btn.setTitleColor(UIColor.lightGray.adjust(by: 20), for: .normal)
        btn.isEnabled = false
        btn.setTitle("Post", for: .normal)
        btn.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .bold)
        btn.addTarget(self, action: #selector(sendTapped), for: .touchUpInside)

        return btn
    }()

可能的原因:

  • 视图控制器重写了不调用 super.

  • 的 touchesBegan(_:with:) 方法
  • UIView userInteractionEnabled 在该按钮上通过 InterfaceBuilder 或以编程方式设置为 false

  • 按钮位于 userInteractionEnabled 设置为 false 的视图下方

看来我必须做的就是将模拟器中的 iPhone 从 8 更改为 X 来解决我的问题。