AKButton和手势轻击冲突

问题描述 投票:1回答:1

我有一个弹出的UIView作为控制窗口。包含AudioKitUI框架中的滑块和按钮。我设置了触摸点击手势以关闭“弹出”视图,但是当我点击按钮时,它当然也关闭了UIview。按下AKButton时是否可以忽略点击手势?

所有内容都包含在其自己的类结构中。这是我的Overide Init顶部的手势代码。

override init(frame: CGRect) {
        super.init(frame: frame)

        self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(animateout)))

以及我的AKButton的代码。

   // Dynamics on/off button
        let dynamicsButton = AKButton(title: "") { button in
            if boxDynamicStatus[boxBloqDoubleTapped] == false {
                button.title = "FLOATING"
                boxDynamicStatus[boxBloqDoubleTapped] = true
                boxBloqArray[boxBloqDoubleTapped].physicsBody?.isDynamic = true
            } else {
                boxDynamicStatus[boxBloqDoubleTapped] = false
                button.title = "FIXED"
                boxBloqArray[boxBloqDoubleTapped].physicsBody?.isDynamic = false
            }
        }
        // Set button text from box array
        if boxDynamicStatus[boxBloqDoubleTapped] == false {
            dynamicsButton.title = "FIXED"
        } else {
            dynamicsButton.title = "FLOATING"
        }

我猜想的滑块没有这个问题,因为它是移动手势而不是轻敲。

所有按钮/滑块均位于容器中

fileprivate let container: UIView = {
        let v = UIView()
        v.translatesAutoresizingMaskIntoConstraints = false
        v.backgroundColor = UIColor.black.withAlphaComponent(0.3)
        v.layer.cornerRadius = 5

        return v

    }()

可以将手势编程为不在容器边界内注册吗?

ios swift uigesturerecognizer audiokit
1个回答
0
投票

我认为这实际上可能是与此处相同的问题:Prevent click through view in swift

因此,可以通过视图的z-index顺序解决。如果您提供了代码的工作版本或某些游乐场版本,我可以进行测试,但这是我所建议的最好信息。

© www.soinside.com 2019 - 2024. All rights reserved.