为什么我不能在模拟器中点击 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 来解决我的问题。
我的视图控制器顶部有两个按钮,它们是模态显示的。奇怪的是,当我在模拟器中单击按钮时,它们根本无法选择。 当我在我的 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 来解决我的问题。