重叠的UIView和与UIKit / Swift的交互性问题

时间:2019-05-14 21:21:14

标签: ios swift uiview uikit

我正在Swift和UIKit中针对iOS构建接口。我所有的观点都是以编程方式构建的。我遇到一个问题,其中一个UIView与另一个UIView重叠(但没有完全覆盖它)阻止了任何轻击事件通过。布局如下所示:

"Interface"

底部的导航栏是一个自定义视图,功能正常。轻触这些按钮可更改其后的活动视图(当前视图为带有SQL语法突出显示的TextView)。其上方是UILabel(带有文本“ Connected”)和UIView(带有渐变背景的圆)。我将此元素称为“ ButtonView”,将标签称为“ StatusView”。 “ StatusView”锚定在导航栏和封闭视图中,“ ButtonView”锚定在导航栏和“ StatusView”中。

这是相关的布局代码:

            view.addSubview(navBar!)
            view.addSubview(status)
            view.addSubview(button)

            status.translatesAutoresizingMaskIntoConstraints = false
            status.layer.masksToBounds = true
            status.text = "Example String"
            status.textColor = .white
            status.layer.cornerRadius = 20.0
            status.layoutMargins = UIEdgeInsets(top: 10.0, left: 10.0, bottom: 10.0, right: 10.0)

            button.translatesAutoresizingMaskIntoConstraints = false
            button.layer.masksToBounds =    true
            button.layer.cornerRadius = 35.0
    //        button.isUserInteractionEnabled = false
    //        button.backgroundColor = .white

            NSLayoutConstraint.activate([
                status.bottomAnchor.constraint(equalTo: navBar!.topAnchor, constant: -10.0),
                status.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10.0),
                status.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -90.0),
                status.heightAnchor.constraint(equalToConstant: 50.0),
                button.bottomAnchor.constraint(equalTo: navBar!.topAnchor, constant: -10.0),
                button.leadingAnchor.constraint(equalTo: status.trailingAnchor, constant: 10.0),
                button.widthAnchor.constraint(equalToConstant: 70.0),
                button.heightAnchor.constraint(equalToConstant: 70.0)
                ])

预期的行为是,即使存在“ ButtonView”,仍可以点击和编辑SQL视图。但是,当出现“ ButtonView”时,SQL视图将不再聚焦。如果将“ ButtonView”的isUserInteractionEnabled属性设置为false或删除了“ ButtonView”,则一切正常。无需编辑任何属性,“ StatusView”似乎没有任何不利影响。 (请注意,当前没有分配给“ ButtonView”的手势行为,并且不是UIButton)。调试视图似乎没有显示任何重叠的层:

"Debug View"

理想情况下,我想最终向该视图添加手势识别器,但是想知道这是否将永远禁止我访问后台的视图吗?是否可以像这样重叠交互式视图,或者我是否以某种方式弄乱了响应者链?

0 个答案:

没有答案