Swift - 将标签设置在其他视图项的顶部

ton*_*spz 16 ios swift

我正在使用swift 1.2和Xcode 6.4创建一个基本的草图应用程序.我正在处理的功能是在图像中添加文本以供将来操作.

到目前为止,我已经将用户输入的文本通过标签添加到绘图中,但是它被放置(我假设)在后面UIImage.这阻止了相关的敲击手势被识别.绘制时标签也会被遮挡.

如何将标签放在其他所有东西上以防止它被拉过来?最终目标是允许用户移动标签.

如果我使用我常用的Web堆栈,我会z-index通过CSS将元素设置为高值.

编辑:使用view.bringSubviewToFront(label)可防止文本被绘制,但不允许拾取点击手势.

继承我的代码:

    func printText(){
        println(textString)

        var label = UILabel(frame: CGRectMake(5, 100, 200, 50 ))
        label.textAlignment = NSTextAlignment.Center
        label.text = textString;

        let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap"))
        label.addGestureRecognizer(tap)

        self.view.addSubview(label);
    }

    func handleTap() {
        print("tap working")
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.

Mik*_*ash 48

如果你想使用z-index:

label.layer.zPosition = 1;
Run Code Online (Sandbox Code Playgroud)

您还可以在父视图上使用bringToFront方法:

self.view.bringSubviewToFront(label);
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看该功能:https: //developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/

此外,您应添加以下内容:

label.userInteractionEnabled = true
Run Code Online (Sandbox Code Playgroud)

启用触摸.


Raf*_*fal 5

尝试在父视图中使用它们:

view.bringSubviewToFront(label)
view.sendSubviewToBack(imageView)
Run Code Online (Sandbox Code Playgroud)

这一切都取决于你能做什么或想做什么.