Swift - UIView 包含 UIImageView 包含图像
Posted
技术标签:
【中文标题】Swift - UIView 包含 UIImageView 包含图像【英文标题】:Swift - UIView Containing UIImageView Containing Image 【发布时间】:2017-12-11 19:02:59 【问题描述】:我正在尝试创建一个具有边框颜色/宽度的 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】: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)
【讨论】:
以上是关于Swift - UIView 包含 UIImageView 包含图像的主要内容,如果未能解决你的问题,请参考以下文章