Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/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
Swift 阴影渲染不正确?敏捷的_Swift_User Interface_Shadow - Fatal编程技术网

Swift 阴影渲染不正确?敏捷的

Swift 阴影渲染不正确?敏捷的,swift,user-interface,shadow,Swift,User Interface,Shadow,我有一个简单的阴影代码,我想知道为什么阴影看起来像移到了左侧。我还附上该问题的图片 我很确定这不应该与偏移有关,因为宽度偏移等于零。有没有办法解决这个问题?谢谢 self.layer.shadowColor = UIColor.init(hexFromString: "000000").cgColor self.layer.shadowPath = UIBezierPath(rect: self.bounds).cgPath self.layer.rasterizationS

我有一个简单的阴影代码,我想知道为什么阴影看起来像移到了左侧。我还附上该问题的图片

我很确定这不应该与偏移有关,因为宽度偏移等于零。有没有办法解决这个问题?谢谢

self.layer.shadowColor = UIColor.init(hexFromString: "000000").cgColor
self.layer.shadowPath = UIBezierPath(rect: self.bounds).cgPath
self.layer.rasterizationScale = UIScreen.main.scale
self.layer.shouldRasterize = true
self.layer.shadowOpacity = 0.1
self.layer.shadowOffset = CGSize(width: 0, height: offSetHeight)
self.layer.shadowRadius = 1
self.layer.masksToBounds = false

指定阴影半径后,阴影将渲染到所有方向,而不是单个方向。如果要从任意一个方向删除阴影,可以在另一个视图中将其删除,并将“剪辑到边界”(clips to bounds)设置为true。

尝试删除设置为“仅保留”(leave only)的额外属性:阴影颜色、阴影不透明度、阴影偏移量、阴影半径、.MasksToBounds。您在哪里调用此代码?可能您在布局完成之前设置了阴影路径。哦,是的,您说得对,谢谢!我在加载布局之前就调用了它,但是为什么阴影会渲染到左侧大约50个点?它应该是该视图的整个宽度。你看到右边的空白了吗?我猜也应该有阴影,你会在视图的帧最终确定之前加载阴影。在iOS 13之前,有一个新的API ViewSafeAreaInsettsDidChange,您可以在其中更新UI。