将鼠标悬停在

时间:2017-01-12 06:49:22

标签: ios swift uibutton 3dtouch

在我的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 {
            ...
        }
    }

其中一个按钮属性检查器的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:2)

我现在只能想到两件事:

你可以试试这个:

yourButton.adjustsImageWhenHighlighted = false

和此:

yourButton.adjustsImageWhenDisabled = false

根据文件:

  

当显示触摸高亮显示(showsTouchWhenHighlighted)选项时   启用后,该按钮会为按钮的一部分添加白色光晕   用户接触。

     

当突出显示调整图像时(adjustsImageWhenHighlighted)   选项已启用,按钮图像在显示时会变暗   突出显示的状态。

     

当禁用调整图像(adjustsImageWhenDisabled)选项时   启用后,禁用该按钮时图像将变暗。

由于它在轻触时发生,你的按钮应该突出显示并发光,但它会变暗,所以它可能会以某种方式被禁用。