Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.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:如何在多个UIView/UIViewController之间投射阴影_Ios_Iphone_Swift_Uikit - Fatal编程技术网

iOS:如何在多个UIView/UIViewController之间投射阴影

iOS:如何在多个UIView/UIViewController之间投射阴影,ios,iphone,swift,uikit,Ios,Iphone,Swift,Uikit,注意:我对如何在UIView上绘制阴影不感兴趣。这已经完成,代码如下所示 我有一个包含一系列部分的UITableView 每个部分都有自己的ui视图作为标题视图 每个部分都有一个单元格,该单元格已嵌入UIViewController(控制器的UIView,但这是实现细节,因为没有内容的正常单元格也会出现同样的问题) 该单元具有投射阴影的内部视图,具有一个大的模糊参数:24 结构看起来是这样的 UITableView -> HeaderView -> TableViewCell --&

注意:我对如何在UIView上绘制阴影不感兴趣。这已经完成,代码如下所示

我有一个包含一系列部分的
UITableView

每个
部分
都有自己的
ui视图
作为
标题视图

每个
部分
都有一个单元格,该单元格已嵌入
UIViewController
(控制器的
UIView
,但这是实现细节,因为没有内容的正常单元格也会出现同样的问题)

该单元具有投射阴影的内部视图,具有一个大的模糊参数:24

结构看起来是这样的

UITableView
-> HeaderView
-> TableViewCell
--> View With Shadow with Blur 24
-> HeaderView
-> TableViewCell
--> View With Shadow with Blur 24
-> HeaderView
-> TableViewCell
--> View With Shadow with Blur 24
问题:

阴影在视图/单元格中绘制,但不在其他标题/单元格上绘制

我认为这是正常的行为

我想把阴影投射到牢房外面

cliptobund
maskToBound
已设置为false(作为每个UIView的默认值)

它当前的样子

您可以看到阴影是在单元格的末尾剪裁的,而不是在单元格之前或之后的节标题上绘制的

我正在努力实现的目标

我希望阴影落在单元格的边界上,并分布在其余的UIView上,即使公共祖先只是
UITableView

注释

我无法减小模糊半径以适应单元格帧。我需要有那么大

阴影的代码通常是:

shadowView.backgroundColor = UIColor.clear
shadowView.layer.shadowColor = profileShadowColor.cgColor
shadowView.layer.shadowOffset = CGSize(width: 0, height: 6)
shadowView.layer.shadowOpacity = 0.25
shadowView.layer.shadowRadius = 20

它是否仅被节标题剪切?我想知道你是否可以用一个清晰的背景来制作章节标题,以允许阴影在其后面。@Joshrach作为一个实验,我移除了
tableView
one之外的所有背景。所以一切都很清楚。阴影还是被剪掉了。我怀疑这可能是由于tableView中视图的顺序造成的,但从检查器的角度看,单元格和部分似乎位于同一级别。它们只是不同的实体,UIKit似乎无法“遮住”阴影