如何在 Swift 中使用 UIImageView 设置背景图像

Posted

技术标签:

【中文标题】如何在 Swift 中使用 UIImageView 设置背景图像【英文标题】:How To Set Background Image with UIImageView in Swift 【发布时间】:2015-12-08 18:25:13 【问题描述】:

我有一个从这个 github repo ZLSwipeableView 引导的 tinder 克隆。

我想用我的 xcasset 中的图像替换默认背景颜色。到目前为止,我已经能够制作图案图像,但这并不好,我需要以某种方式使用 UIImageView 来创建背景图像。这是我目前所拥有的:

    let cardView = CardView(frame: swipeableView.bounds)

    if let image = UIImage(named: "Image") 
        cardView.backgroundColor = UIColor(patternImage: image)
     else 
        print("There was no such image.")
    

然后是 CardView 类

    class CardView: UIView 

    override init(frame: CGRect) 
        super.init(frame: frame)
        setup()
    

    required init?(coder aDecoder: NSCoder) 
        super.init(coder: aDecoder)
        setup()
    

    func setup() 

        // Shadow
        layer.shadowColor = UIColor.blackColor().CGColor
        layer.shadowOpacity = 0.25
        layer.shadowOffset = CGSizeMake(0, 1.5)
        layer.shadowRadius = 4.0
        layer.shouldRasterize = true
        layer.rasterizationScale = UIScreen.mainScreen().scale

        // Corner Radius
        layer.cornerRadius = 10.0;
    

显然,每个卡片“框架”都设置为使用UIColor 类处理颜色。如何将此 CardView 框架转换为 UIImageView 对象,以便我可以设置 backgroundImage?

【问题讨论】:

【参考方案1】:

尝试将 UIImageView 作为子视图添加到 CardView

var image:UIImage = UIImage(named: "Image.png")
var labelBackground = UIImageView(frame: CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>))
labelBackground = image
cardView.addSubview(labelBackground)

【讨论】:

这是斯威夫特?我收到了一些错误、预期的逗号等。 抱歉,objective-c 现在用 swift 代码更新了,虽然不是 swift 专家 我不知道在哪里添加这段代码。在 CardView 类中?或者在控制器中 在创建 CardView 类对象后在控制器中。 第二行错误:'ZLSwipeableViewController' 类型的值没有成员'bounds'。我认为框架已经在 CardView 类中声明了。

以上是关于如何在 Swift 中使用 UIImageView 设置背景图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中使用 UISlider 更改 UIImageView 中的图像

如何在 Swift 中使用色调和一些文本向 UIImageView 添加叠加层?

如何在swift中使用带有completionHandler的UIImageView load()函数

如何在 Swift 中调整 UIImageView 的大小

如何在 Swift 3 中以编程方式在 UIImageview 中添加 UITableview

我如何在 Swift iOS 中检测 UIImageView 中的更改图像