UITableView 部分标题 1px 光泽/阴影重叠

Posted

技术标签:

【中文标题】UITableView 部分标题 1px 光泽/阴影重叠【英文标题】:UITableView section header 1px gloss/shadow overlapping 【发布时间】:2011-03-01 21:01:26 【问题描述】:

以下是标准节标题视图如何处理滚动/重叠:

我正在尝试使用自定义部分标题复制相同的行为,但我得到的只是:

似乎在默认行为中,底部标题视图的顶部 1px 线与顶部标题视图的底部 1px 线重叠。这也可以在导航栏下方观察到,相同的顶部 1px 行在其下方消失。

在 tableview 上设置 contentInset 可以修复导航栏的情况,但不能解决重叠问题。我也尝试过使用 maskToBounds 和 clipToBounds 属性,但没有运气。有什么线索吗?

【问题讨论】:

看起来你也得到了 1 个像素的重叠。深蓝色正上方的中灰色像素线发生了什么? 抱歉,可能应该提到:灰色像素线是我的自定义单元格视图的一部分。具有默认标题视图的自定义单元格的屏幕截图:samv.me/4vpF 这似乎是苹果设计师抱怨的事情之一,并且工程人员使用私有 API 进行了黑客攻击。 【参考方案1】:

正如 Mark Adams 所提到的,似乎没有任何公共 API 可以处理这个问题,所以在我的 cellForRowAtIndexPath: 方法中,我做了一些类似的事情:

if(isLastCellInSection)
    cell.drawBottomLine = NO;
else
    cell.drawBottomLine = YES;

【讨论】:

以上是关于UITableView 部分标题 1px 光泽/阴影重叠的主要内容,如果未能解决你的问题,请参考以下文章

选择部分中的最后一行后显示分隔线

CSS3实现图形曲线阴形和翘边阴影

iTunes 连接默认添加光泽效果

如何去除UITabBarIcon的阴影和光泽效果

512 应用程序图标显示光泽的问题

如何向 GLTF 模型添加光泽度/镜面反射纹理?