首页 > 解决方案 > UINavigationController 中的 tvOS UITableView 导致奇怪的褪色行为(UIView.mask)

问题描述

在 UINavigationController 的上下文中使用 UITableView 时,我遇到了一个奇怪的情况。

tvOS 使用 UIView.mask 在 UITableView 的顶部和底部应用“淡出渐变”,以便单元格在表格视图的顶部和底部边缘淡入和淡出。

没关系:褪色蒙版始终不妨碍所选单元格。

(这里,view.backgroundColor 设置为红色,tableView.backgroundColor 设置为蓝色,alpha 为 50%。tableView 的约束设置为安全区域。)

在此处输入图像描述

当您将视图控制器放入 UINavigationController 时,问题就出现了。When selection is near the top, the mask view no longer seems to avoid the cell, so it looks faded. 此外,当用户向下滚动时,褪色蒙版会向下大幅跳动,然后当用户开始向上滚动时,褪色蒙版似乎不会妨碍您:

在此处输入图像描述

作为参考,这里是相同的设置,但 tableView.mask = nil:

在此处输入图像描述

(所有淡入淡出都被禁用,但您可以看到表格视图顶部和底部的单元格“弹出”和消失。您可能认为您可以设置 tableView.masksToBounds = true,但随后选定的单元格被切掉因为它在选择时会增长)

我肯定在这里遗漏了一些明显的东西吗?苹果公司没有人在导航控制器中放置一个表格视图吗?

标签: swiftuitableviewmasktvos

解决方案


你离得太近了!边界剪辑丢失。

tableView.clipsToBounds = true
tableView.mask = nil

干杯:)


推荐阅读