如何让UIImageView尊重它的superview.layer.mask

时间:2016-12-21 02:15:32

标签: ios uiview uiimageview calayer

我有一个UIViewself.layer.mask设置为CAShapeLayer。如果我添加UILabel作为子视图,UILabel被正确屏蔽,但如果我添加UIImageView,则会忽略该屏蔽。我究竟做错了什么?是否需要在UIImageView上设置属性以使其尊重超视图蒙版?

我可以通过将self.layer.contents的{​​{1}}直接设置为我想要显示的UIView来获得我想要的结果,而不是将CGImage添加为子视图,但这只处理一个UIImageView

2 个答案:

答案 0 :(得分:1)

您所描述的内容非常适合UIImageView,因为此屏幕截图显示:

enter image description here

这是一个带有CAShapeLayer(带有"椭圆"路径)作为其掩码和UIImageView作为其子视图的视图。

答案 1 :(得分:0)

问题是UIImageView框架被调整为完全落在可见区域内,因此没有明显的剪裁。这是对一些复杂的现有代码的更改,所以我没有立即看到这一点。