使用Swift处理部分中的可见标题

是否曾经注意到Apple的“照片”应用程序将其标题更改为发粘时变得模糊?

如您所见,一旦页眉到达其粘性位置,背景就会变为模糊。

如果您使用的是Objective-C,那么有使用VlaueForKey的漂亮解决方案

我们需要的是visibleCells属性,但对于visibleHeadersInSection…

快速浏览一下UITableView文档,我们可以得到indexPathsForVisibleRows,并将其与map结合起来可以得到我们需要的数组。 将其附加到scrollViewDidScroll可以得到以下内容:

为了这个例子,我将强制解开可选

让我们看一下实现它的代码:

我们的ColorChangeable协议:

我们的HeaderColorChange 扩展名(用于颜色):

让我们看一下第23行中的iterativeBackgroundChange ,我们首先采用旧颜色(第24行),提取其颜色(包括alpha)(第26行),然后返回相同的颜色,但在其alpha值上添加0.1即可得到我们想要的效果。

我们的DataController:

  • (显然) TableController持有一个DataController类型的实例,以便获取表视图委托数据源的相关数据。
  • 虚构类型SomeEntity可以是您决定的任何类型,但是,如果它符合ColorChangeable协议(第5行),则意味着此对象在表视图中具有对应的标题,该标题应更改并保存其颜色状态我们所做的。

您可以在此处找到示例项目。

希望你像我一样喜欢它


如果您有任何疑问/评论/启示或任何相关的内容,我很乐意在 Twitter上 或什至在评论部分 与您讨论
不要犹豫🙂