【问题标题】:How to add overlay to an UIImageView with tint and some text in Swift?如何在 Swift 中使用色调和一些文本向 UIImageView 添加叠加层?
【发布时间】:2016-07-15 07:06:01
【问题描述】:

我创建了一个包含UIImageViews 的UIStackView 来启动图库。但是,这个UIStackView 只会显示 3 个项目,而第三个项目将与图库中的图像数量叠加。类似于下图:

问题是;如何在 Swift 中的 UIImageView 上添加黑色和“+3”文本?

【问题讨论】:

    标签: ios swift uiimageview uiimage


    【解决方案1】:
    1. 像 mainView 一样创建 UIView “dynamicView”
    2. 创建一个 UIImageView 添加到“dynamicView”
    3. 为透明色阴影创建另一个视图。命名为“tranpView”
    4. 创建标签并将位置居中。标签添加到“tranpView”
    5. 最后将“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"
      

    【讨论】:

    【解决方案2】:

    您可以使用具有 3 个子视图的 UIView

    1. UIImage画廊UIImageView
    2. UIView 带有黑色背景色和 alpha 0.3
    3. UILabel 带有 +3 文字。

    【讨论】:

    • 哪一个会是其他的子视图?我尝试将子视图添加到 UIImageView 但对我不起作用。
    • 正如我提到的,使用具有 3 个子视图(图像视图、着色视图和标签)的超级视图
    • 当我这样做时,它会导致 UIStackView 出现问题,还有其他替代解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多