Swift - 包含UIImageView包含图像的UIView

时间:2017-12-11 19:03:00

标签: ios swift uiimageview layer addsubview

我正在尝试创建一个具有边框颜色/宽度的UIView,添加一个具有不同边框颜色/宽度的子视图UIImageView,并且还在其中包含一个图像。基本上我想要的是带有白色边框,后跟蓝色边框的图像。

现在我只看到蓝色边框出现了。这就是我在做的事情:

(在一个闭包内部,其中outerView是一个UIView)

        outerView.frame = cell.frame
        outerView.layer.borderColor = UIColor.blue.cgColor
        outerView.layer.borderWidth = 3.0
        outerView.layer.cornerRadius = outerView.frame.height / 2
        outerView.clipsToBounds = true
        outerView.backgroundColor = UIColor.clear

        let imageView = UIImageView(frame: outerView.frame)
        imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        self?.controller?.setupImageView(imageView, cell: cell)
        outerView.addSubview(imageView)

setupImageView:)

let frame = imageView.frame
imageView.image = imageConstants.imageToDisplay
imageView.clipsToBounds = true
imageView.layer.cornerRadius = frame.height / 2
imageView.layer.borderWidth = 3.0
imageView.layer.borderColor = UIColor.white.cgColor

如果我更改它,那么闭包只返回一个UIImageView类型(outerView是一个UIImageView)并直接传递给setupImageView(imageView:cell :)函数,我能够看到图像和白色边界。

我不确定我错过了什么才能同时展示。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

outerView和你的imageView具有相同的框架(这意味着它们具有相同的高度和相同的宽度)imageView的边框位于outherView的边框下。

试试这个:

let outerFrame = outerView.frame
let frame = CGRect(x: outerFrame.origin.x - 3, y: outerFrame.origin.y - 3, width: outerFrame.size.width -6, height: outerFrame.size.height -6)

3因为borderWidth = 3.0

和:

let imageView = UIImageView(frame: frame)