使用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上 或什至在评论部分 与您讨论 。
不要犹豫🙂