在我的iPhone应用程序中,我在UIButton
中创建了一堆Interface Builder
。每个按钮都有一个GestureRecognizer
来识别硬压力(3D触摸),当施加足够的力时,我会更改UIButton图像并进行一些计算。
这一切都很好,唯一的问题是当每个按钮被轻轻触摸(徘徊)时会变成灰色的外观。
如何摆脱这种行为?
以下是我的部分代码:
class ViewController: UIViewController {
@IBOutlet weak var btn: UIButton!
...
let btnDeepPressGestureRecognizer = DeepPressGestureRecognizer(target: self, action: #selector(ViewController.btnDeepPressHandler(_:)), threshold: self.deepPressureThreshold)
btn.addGestureRecognizer(btnDeepPressGestureRecognizer)
...
func btnDeepPressHandler(_ value: DeepPressGestureRecognizer) {
if value.state == .began {
...
} else if value.state == .ended {
...
}
}
其中一个按钮属性检查器的屏幕截图:
答案 0 :(得分:2)
我现在只能想到两件事:
你可以试试这个:
yourButton.adjustsImageWhenHighlighted = false
和此:
yourButton.adjustsImageWhenDisabled = false
根据文件:
当显示触摸高亮显示(showsTouchWhenHighlighted)选项时 启用后,该按钮会为按钮的一部分添加白色光晕 用户接触。
当突出显示调整图像时(adjustsImageWhenHighlighted) 选项已启用,按钮图像在显示时会变暗 突出显示的状态。
当禁用调整图像(adjustsImageWhenDisabled)选项时 启用后,禁用该按钮时图像将变暗。
由于它在轻触时发生,你的按钮应该突出显示并发光,但它会变暗,所以它可能会以某种方式被禁用。