如何将 UIView 的边框放在 UIImage 后面?

Posted

技术标签:

【中文标题】如何将 UIView 的边框放在 UIImage 后面?【英文标题】:How can I bring a UIView's border behind a UIImage? 【发布时间】:2018-01-30 14:11:53 【问题描述】:

我是 Swift 新手,在尝试开发小型应用程序时遇到问题,我真的希望有人能帮助我。

基本上,我在 UIView 中有一个 UIImage,我想将 UIView 的边框发送到后面(见下图)

所以,我给 UIView 一个边框,它会穿过我的图像。我的问题是:

注意:如果这是一个重复的问题,我深表歉意,我已经寻找了几个小时的答案,但找不到我需要的答案。

最好的问候!

这是我的图像代码:

speakerImage.layer.cornerRadius = speakerImage.frame.size.width / 2;
speakerImage.clipsToBounds = true;
speakerImage.layer.zPosition = 1

这是我的视图代码:

speakerContentView.layer.cornerRadius = 5
speakerContentView.layer.borderWidth = 1
speakerContentView.layer.borderColor = UIColor.gray.cgColor
speakerContentView.layer.shadowColor = UIColor.gray.cgColor
speakerContentView.layer.shadowOpacity = 0.7
speakerContentView.layer.shadowOffset = CGSize(width: 0, height: 3)
speakerContentView.layer.zPosition = -1

【问题讨论】:

请在问题中包含创建边框的代码。 刚刚添加,谢谢提醒。我完全忘记了代码! @Krunal 你已经回答了这个问题;无需评论链接到您的答案。 我认为最好将图像视图和包含文本的视图放在一个超级视图下,使它们成为兄弟,这样您就可以将图像视图放在视图的顶部。 【参考方案1】:

这可能对你有帮助!!

将您的图像移到当前 (speakerContentView) 视图之外,并将其设置在更高的层次结构中,以便它能够获得最前面的位置。 将图像的垂直中心 Y 设置为等于当前 (speakerContentView) 视图 Y

看这张图片:

可能不是标准方法,但可以解决您的问题。

【讨论】:

我不管你住在哪里,我会找到你的!我会给你一个大大的拥抱!!!!!!!!!!!!我花了几个小时来理解这个问题。尝试对其进行编码,但看起来它更容易。非常感谢,非常感谢您的帮助!!! @同志哈哈..我希望,我们会见面:)您可以接受(在投票计数器下方启用trickmark)这个答案!【参考方案2】:

您应该在图像下方添加一个与父视图大小相同的子视图,并为其分配边框/阴影而不是其父视图。

【讨论】:

是的!我不敢相信这是问题所在。我非常感谢您花时间提供帮助!

以上是关于如何将 UIView 的边框放在 UIImage 后面?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ImageView 中裁剪 UIImage

试图将 UIView 放在 UIImageView 之上以突出显示 UIImage 的一部分

如何在 UIView 上设置平滑边框颜色?

UIImageView 填写 UIView

iOS - 如何将 UIImage 和 UILabel 作为页脚放在同一行?

如何将(编辑的)UIView 转换为 UIImage?