我们如何将一个 UIView 设置为另一个 UIView 的掩码

Posted

技术标签:

【中文标题】我们如何将一个 UIView 设置为另一个 UIView 的掩码【英文标题】:How can we set a UIView as a mask of another UIView 【发布时间】:2018-01-16 11:19:50 【问题描述】:

我有

    gradientView 只是我的渐变视图 带有 anImageView 和 aUILabel 的视图 containerView

现在当我尝试

gradientView.mask = containerView

什么都没有显示???但是当我这样做时

gradientView.mask = anImageView

gradientView.mask = aUILabel

它很好地涂抹面膜。 有什么办法可以实现

gradientView.mask = containerView

【问题讨论】:

【参考方案1】:

UIImageViewUILabel 都具有固有内容大小,但没有 UIView。视图的掩码必须正确设置框架。确保设置了containerView.frame

containerView.frame = gradientView.bounds

另外,请确保 containerView.backgroundColor 设置为 UIColor.clear

【讨论】:

我只想添加另一件事,视图的背景颜色应该是 clearColor @AsadullahAli 所以它不起作用?或者你的意思是视图的背景颜色应该是clearColor? 说对了一半。我必须添加 containerView.backgroundColor = UIColor.clear @AsadullahAli 哦,好的,我会更新答案。我预计containerView 的背景颜色是clearColor,因为这是UIView 的默认背景颜色 当我们从情节提要中添加它时,默认颜色是白色,这导致我浪费了数小时的时间,所以最好让其他人知道。

以上是关于我们如何将一个 UIView 设置为另一个 UIView 的掩码的主要内容,如果未能解决你的问题,请参考以下文章

如何在父 uiview 内设置 uiview 大小?

带有 webview 的 UIView 滚动

在 UIView 内对 UITableView 设置约束

UIView动画设置参数

如何将一个构造函数的值设置为另一个构造函数的值? [复制]

如何以针对不同尺寸显示器的模式排列多个 UIView