Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用另一个加莱尔面具加莱尔_Ios_Xcode_Swift_Calayer_Mask - Fatal编程技术网

Ios 用另一个加莱尔面具加莱尔

Ios 用另一个加莱尔面具加莱尔,ios,xcode,swift,calayer,mask,Ios,Xcode,Swift,Calayer,Mask,我试图用另一层(贴纸蒙版)的图像遮住一层(新闻标签),如下所示: func placeSticker(location: CGPoint) { let stickerMask = CALayer() stickerMask.contents = UIImage(contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("brush\(self.stickerSele

我试图用另一层(贴纸蒙版)的图像遮住一层(新闻标签),如下所示:

    func placeSticker(location: CGPoint) {

    let stickerMask = CALayer()
    stickerMask.contents = UIImage(contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("brush\(self.stickerSelected).png"))!.CGImage
    stickerMask.frame = CGRect(x: location.x * 100, y: location.y * 100, width: 200, height: 200)

    let newSticker = CALayer()
    newSticker.backgroundColor = UIColor(red: self.red, green: self.green, blue: self.blue, alpha: 1.0).CGColor
    newSticker.frame =
        CGRect(x: location.x * 100, y: location.y * 100, width: 200, height: 200)
    newSticker.mask = stickerMask
    self.picturesView.layer.addSublayer(newSticker)

}
如果我在我的“picturesView”层中单独添加stickerMask,它将正确加载到屏幕上,newSticker将加载相应的自定义背景色

我的问题是,一旦您将stickerMask应用于newSticker.mask,就什么也看不见了。我尝试将masksToBounds设置为false和true,但得到了相同的结果


知道我做错了什么吗?

问题在于遮罩的帧计算

确保当某些层是遮罩时,应计算遮罩的帧,就像它只是超层的子层一样


换句话说,遮罩的坐标系等于超层坐标系。

问题可能在于遮罩的框架。尝试使用x=0和y=0作为遮罩的帧,如果它有效,那么您只需要精确计算遮罩的帧。tikhop,就是这样!非常感谢。