我有这个PNG文件,我想用它作为UIView
的掩码。Swift:Mask Alignment +自动布局约束条件
视图必须是:
- 20像素/从每个侧
- 一个完全平方
- 垂直居中点
我设置以下的制约要做到这一点:
但是,看起来这些限制并不能很好地与掩码一起玩。当这些约束和mask
属性设置,我得到如下:
但我的观点一样,看起来就像面具上面,除了橙(这里的backgroundColor
仅仅是simplicity-我后来添加需要被屏蔽子视图)
然而,当没有任何限制设置,则mask
似乎正常工作,我得到这样的事情(borderColor
添加唯一的视觉目的):
这里是我的代码(viewForLayer
是我在故事板制作一个UIView):
viewForLayer.layer.borderColor = UIColor.redColor().CGColor
viewForLayer.layer.borderWidth = 10
var mask = CALayer()
mask.contents = UIImage(named: "TopBump")!.CGImage
mask.frame = CGRect(x: 0, y: 0, width: viewForLayer.bounds.width, height: viewForLayer.bounds.height)
mask.position = CGPoint(x: viewForLayer.bounds.width/2, y: viewForLayer.bounds.height/2)
viewForLayer.layer.mask = mask
viewForLayer.backgroundColor = UIColor.orangeColor()
的问题是,虽然,现在的观点是不正确的大小或在合适的位置,它不不遵循上述规则 - “观点必须是:”。 如何才能使mask
正常工作,并同时设置自动布局约束?
你确定这个'viewForLayer'具有正确的尺寸吗? – Kametrixom
不知道你的意思是正确的大小,但我在故事板中设置了约束,当我运行它时没有设置图层的“mask”属性,它是一个橙色的正方形,占据与蒙版时完全相同的空间,除了右下角,显然也是橙色的。 – 5813
尝试使用边框插入橙色视图以查看约束是否正确。我怀疑橙色背景视图正在扩展,通过屏幕的右边界。 – Laurent