我正在使用swift 1.2和Xcode 6.4创建一个基本的草图应用程序。我正在处理的功能是在图像中添加文本以供将来操作。
到目前为止,我已经将用户输入的文本通过标签添加到绘图中,但是它被放置(我假设)在要绘制的UIImage
后面。这阻止了相关的敲击手势被识别。绘制时标签也会被遮挡。
如何将标签置于其他所有位置以防止其被拉过来?最终目标是允许用户移动标签。
如果我使用的是常用的Web堆栈,我会通过CSS将元素的z-index
设置为高值。
编辑:使用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")
}
任何帮助都非常感激。
答案 0 :(得分:43)
如果你想使用z-index:
label.layer.zPosition = 1;
您也可以在父视图上使用bringToFront方法:
self.view.bringSubviewToFront(label);
您可以在此处查看该功能: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/
另外,您应该添加以下内容:
label.userInteractionEnabled = true
启用触控。
答案 1 :(得分:5)
尝试在父视图中使用它们:
view.bringSubviewToFront(label)
view.sendSubviewToBack(imageView)
这完全取决于你能做什么或想做什么。
答案 2 :(得分:3)
您可以通过
调用标签self.view.bringSubviewToFront(label)
或
您可以通过
将图片视图发送到后面self.view.sendSubviewToBack(imageView)