如何在 Swift 中使用色调和一些文本向 UIImageView 添加叠加层?
Posted
技术标签:
【中文标题】如何在 Swift 中使用色调和一些文本向 UIImageView 添加叠加层?【英文标题】:How to add overlay to an UIImageView with tint and some text in Swift? 【发布时间】:2016-07-15 07:06:01 【问题描述】:我创建了一个包含UIImageView
s 的UIStackView
来启动图库。但是,这个UIStackView
只会显示 3 个项目,而第三个项目将与图库中的图像数量叠加。类似于下图:
问题是;如何在 Swift 中的 UIImageView
上添加黑色和“+3”文本?
【问题讨论】:
【参考方案1】:-
像 mainView 一样创建 UIView “dynamicView”
创建一个 UIImageView 添加到“dynamicView”
为透明色阴影创建另一个视图。命名为“tranpView”
创建标签并将位置居中。标签添加到“tranpView”
最后将“dynamicView”视图添加到 self.view
let dynamicView=UIView(frame: CGRectMake(0, 200, 200, 200))
dynamicView.backgroundColor=UIColor.clearColor()
let imageView=UIImageView(frame: CGRectMake(0, 0, 200, 200))
imageView.image = UIImage(named: "bg.png")
dynamicView.addSubview(imageView)
let tranpView=UIView(frame: CGRectMake(0, 0, 200, 200))
tranpView.backgroundColor = UIColor.whiteColor()
tranpView.backgroundColor = tranpView.backgroundColor!.colorWithAlphaComponent(0.3)
let label = UILabel(frame: CGRectMake(0, 0, 50, 50))
label.text = "+3"
label.font = UIFont.systemFontOfSize(20)
label.center = tranpView.center;
tranpView.addSubview(label)
dynamicView.addSubview(tranpView)
self.view.addSubview(dynamicView)
//Just add to stackView directly replace the "self.view"
【讨论】:
看起来我有这个问题。请您看一下,***.com/questions/44632424/… 吗?【参考方案2】:您可以使用具有 3 个子视图的 UIView
:
UIImage
画廊UIImageView
UIView
带有黑色背景色和 alpha 0.3
UILabel
带有 +3 文字。
【讨论】:
哪一个会是其他的子视图?我尝试将子视图添加到 UIImageView 但对我不起作用。 正如我提到的,使用具有 3 个子视图(图像视图、着色视图和标签)的超级视图 当我这样做时,它会导致 UIStackView 出现问题,还有其他替代解决方案吗?以上是关于如何在 Swift 中使用色调和一些文本向 UIImageView 添加叠加层?的主要内容,如果未能解决你的问题,请参考以下文章
在 Lab、Hcl 或任何感知均匀的颜色系统中改变色调和亮度
更改嵌入在标签栏视图控制器中的 ABPeoplePickerNavigationController 的色调和背景颜色