Swift 3 ios:当图像出现时,UILabel 需要出现在 UIImage 之上
Posted
技术标签:
【中文标题】Swift 3 ios:当图像出现时,UILabel 需要出现在 UIImage 之上【英文标题】:Swift 3 ios: UILabel needs to appear on top of a UIImage when the Image appears 【发布时间】:2017-03-30 03:03:46 【问题描述】:所以我试图让用户能够设计自己的虚拟名片,用户可以在 UIView 周围拖动标签,他们可以更改 UIView 的背景颜色以及 UILabel 的颜色。卡片本身由笔尖表示,用户通过 UIPickerView 选择不同的颜色选择或模板图像选择。我希望标签出现在图像顶部并被拖到视图的该部分时,但它目前没有这样做。更改 UIView 和文本的背景颜色就可以了;我还可以使用 .isHidden() 添加和删除模板图像(这是一个 PNG)。
我的问题是,当 UIImage 添加到 UIView 时,它位于 UILabel 之上。如果 UILabel 的一部分与 png 图像的一部分重叠,它会消失在它后面,我希望它出现在图像上。
nib 的代码在 userCardView.swift 中,选择器视图在 mainViewController 上,我在其中设置了 UserDefaults,它工作正常。
class userCardView: UIView
@IBOutlet var cardView: UIView!
@IBOutlet weak var testLBL: UILabel!
@IBOutlet weak var templateImage: UIImageView!
var colorIndex = ["Black", "White", "Gray"]
var templateIndex = ["None", "Triangle"]
override func awakeFromNib()
super.awakeFromNib()
cardView.clipToBounds = true
let backColorObject = UserDefaults.standard.object(forKey: "backGroundColor") as? String
let textColorObject = UserDefaults.standard.object(forKey: "textColor") as? String
let templateColorObject = UserDefaults.standard.object(forKey: "templateColor") as? String
let templateImageObject = UserDefaults.standard.object(forKey: "templateImage") as? String
for _ in templateIndex
if templateImageObject == templateIndex[1]
templateImage.isHidden = false
templateImage.image = UIImage(named: "test_triangle.png")
//testLBL.bringSubview(toFront: templateImage)
templateImage.bringSubview(toFront: testLBL)
else if templateImageObject == templateIndex[0]
templateImage.isHidden = true
else
templateImage.isHidden = true
我对使用 swift 还是很陌生,所以任何帮助都将不胜感激,谢谢。
【问题讨论】:
【参考方案1】:你需要请testLBL
的superview把它带到前面。如果templateImage
不是testLBL
的父视图,您的代码templateImage.bringSubview(toFront: testLBL)
将不起作用,因为testLBL
不在templateImage
的视图层次结构中。
所以尽量使用testLBL
的superview
<testLBL's parent view>.bringSubview(toFront: testLBL)
或
testLBL.parentView.bringSubview(toFront: testLBL)
希望它能解决你的问题
【讨论】:
以上是关于Swift 3 ios:当图像出现时,UILabel 需要出现在 UIImage 之上的主要内容,如果未能解决你的问题,请参考以下文章
在iOS Swift中不使用AWS SDK在Amazon S3存储桶中上传的背景图像(背景模式)
如何仅在 Swift 中访问从相机拍摄的图像,就像 iOS 中的画廊一样?
导航不出现 Xcode 8.1 iOS 10 Swift 3