我正在尝试创建一个具有边框颜色/宽度的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 :)函数,我能够看到图像和白色边界。
我不确定我错过了什么才能同时展示。
提前谢谢!
答案 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)