如何让 UIImageView 尊重它 superview.layer.mask
How to make UIImageView respect its superview.layer.mask
我有一个 UIView
,self.layer.mask
设置为 CAShapeLayer
。如果我将 UILabel
添加为子视图,则 UILabel
会被正确屏蔽,但如果我添加 UIImageView
,则屏蔽会被忽略。我究竟做错了什么?是否有 属性 我需要在 UIImageView
上设置以使其尊重超级视图掩码?
直接把UIView
的self.layer.contents
设置成我要显示的CGImage
就可以得到我想要的结果,而不是把UIImageView
加成一个子视图,但它只处理一个 UIImage
.
您所描述的内容对于 UIImageView 非常适用,如该屏幕截图所示:
这是一个以 CAShapeLayer(具有 "oval" 路径)作为其掩码并以 UIImageView 作为其子视图的视图。
问题是 UIImageView 框架被调整为完全落在可见区域内,因此没有明显的裁剪。这是对一些复杂的现有代码的更改,所以我没有立即看到它。
我有一个 UIView
,self.layer.mask
设置为 CAShapeLayer
。如果我将 UILabel
添加为子视图,则 UILabel
会被正确屏蔽,但如果我添加 UIImageView
,则屏蔽会被忽略。我究竟做错了什么?是否有 属性 我需要在 UIImageView
上设置以使其尊重超级视图掩码?
直接把UIView
的self.layer.contents
设置成我要显示的CGImage
就可以得到我想要的结果,而不是把UIImageView
加成一个子视图,但它只处理一个 UIImage
.
您所描述的内容对于 UIImageView 非常适用,如该屏幕截图所示:
这是一个以 CAShapeLayer(具有 "oval" 路径)作为其掩码并以 UIImageView 作为其子视图的视图。
问题是 UIImageView 框架被调整为完全落在可见区域内,因此没有明显的裁剪。这是对一些复杂的现有代码的更改,所以我没有立即看到它。