如何修复文本标签阴影布局

how to fix textlabel shadow layout

我参考了this link实现uicollectionview水平和垂直滚动的粘性行和列,如下所示。

我想为第一列中的每个文本标签添加阴影,如下面的代码。

cell.layer.shadowOffset = CGSize(width: 3, height: 3)
cell.layer.shadowOpacity = 0.7
cell.layer.shadowRadius = 2

但是当我继续滚动这个 uicollection 视图时,我发现发生了一些布局错误:(

我不知道如何修复它,有什么想法吗?

感谢您抽出时间。

cell.layer.shadowOffset = CGSize(width: 3, height: 3)
cell.layer.shadowOpacity = 0.7
cell.layer.shadowRadius = 2

在单元格的 prepareForReuse() 方法中添加这些行。

那是因为你给单元格而不是文本标签添加了阴影。

cell.layer.shadowOffset = CGSize(width: 3, height: 3)
cell.layer.shadowOpacity = 0.7
cell.layer.shadowRadius = 2

上面的代码会给单元格而不是文本标签添加阴影。您可以将阴影应用于 textLabel,如

cell.textLabel.layer.shadowRadius = 2

这是因为 Collectionview 正在重用其已添加阴影的单元格

然后你必须在 cellAtIndexPathAtindex 方法中的所有方法

if firstcolummn
{
cell.layer.shadowOffset = CGSize(width: 3, height: 3)
cell.layer.shadowOpacity = 0.7
cell.layer.shadowRadius = 2

}
else
{

cell.layer.shadowOffset = CGSize(width: 0, height: 0)
cell.layer.shadowOpacity = 0.7
cell.layer.shadowRadius = 0


}