首页 > 解决方案 > Swift:向下滚动时下拉溢出消失

问题描述

我正在做这个项目,我在 tableView 单元格中使用下拉菜单。我正在使用以下代码使下拉部分溢出 tableView 单元格底部

cell.clipsToBounds=false
cell.contentView.clipsToBounds=false

一切正常,但是当我向下滚动 tableView 直到下拉部分不再可见时,溢出停止工作。您可以在下面的项目中看到问题的实际效果

https://github.com/Rawchris/Drop-down-overflow2

在项目中,我在每个单元格中都放置了下拉按钮,但如果它只是第一个工作的按钮就很好。我希望你能提供帮助。如果您需要更多信息,请告诉我。

标签: iosswiftuitableviewdrop-down-menuoverflow

解决方案


问题不在于“溢出停止工作” ……问题在于表格视图单元格没有按顺序绘制。

从您的其他问题中得到答案:https ://stackoverflow.com/a/61252794/6257435

我缩短了单元格的高度以使其更容易看到。

在这张图片中:

在此处输入图像描述

在点击“第 8 行”按钮之前,我上下滚动了几次。如您所见,您的灰色“下拉”菜单隐藏在第 9 行和第 10 行后面。

使用Debug View Hierarchy你可以确切地看到发生了什么:

在此处输入图像描述

可以通过使用闭包或委托协议告诉您的 tableViewController 在打开菜单时将该单元格置于最前面来解决此问题,但是......在显示“下拉菜单”时滚动时您可能仍会遇到问题。当“下拉”同时显示多行时,您也会遇到问题。

一般来说,在其他视图的范围之外进行绘制并不是一个好主意。可能会出现很多问题。另外——当然,这可能只是个人意见——整个“下拉选择列表”在手机或平板电脑上感觉非常不合适。它带来了相当笨拙/尴尬的用户体验。如果我是你,我会重新考虑我的方法。


推荐阅读