如何在 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 【问题描述】:

我创建了一个包含UIImageViews 的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 添加叠加层?的主要内容,如果未能解决你的问题,请参考以下文章

swift中的多行多色属性文本

Seaborn 色调和尺寸图例

在 Lab、Hcl 或任何感知均匀的颜色系统中改变色调和亮度

更改嵌入在标签栏视图控制器中的 ABPeoplePickerNavigationController 的色调和背景颜色

使用vue学习three.js之渲染后期处理-使用HueSaturationShader定制效果调整颜色的色调和饱和度

如何在 swift 中使用文本字段文本“金额”向 tableview 添加额外的行