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

How to make UIImageView respect its superview.layer.mask

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

直接把UIViewself.layer.contents设置成我要显示的CGImage就可以得到我想要的结果,而不是把UIImageView加成一个子视图,但它只处理一个 UIImage.

您所描述的内容对于 UIImageView 非常适用,如该屏幕截图所示:

这是一个以 CAShapeLayer(具有 "oval" 路径)作为其掩码并以 UIImageView 作为其子视图的视图。

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