繁体   English   中英

滚动视图内的表视图

[英]Table views inside a scroll view

我的Swift应用程式有这个点击问题。 我正在一个UIScrollView内建立带有2个UITableView的配置文件屏幕。 但是,只有1个UITableCell是可单击的(之所以必须将两个表分开,是因为最上面的表按ASC排序-从最近到将来的日期,而最下面的表按DESC排序-从最新到最旧的)。

在此处输入图片说明

这些表是根据内容自动拉伸的,如下面的代码所示。 问题是只有第一项是可单击的。

在其他带有1 UITableView屏幕中,一切都很好。 我还确保使用UI调试器在表的前面没有视图。

// Table 1
// UITableViewDelegate, UITableViewDataSource
managerUpcoming.getTable().reloadData()
// Height Constraint
heightUpcoming.constant = managerUpcoming.getTable().contentSize.height
// Resize table
managerUpcoming.getTable().frame.size.height = heightUpcoming.constant
// Update
managerPrevious.getTable().updateConstraints()

// Table 2
// UITableViewDelegate, UITableViewDataSource
managerPrevious.getTable().reloadData()
// Height Constraint
heightPrevious.constant = managerPrevious.getTable().contentSize.height
// Resize table
managerPrevious.getTable().frame.size.height = heightPrevious.constant
// Update
managerPrevious.getTable().updateConstraints()

viewContent.frame.size.height = total
scroll.contentSize.height = viewContent.frame.height

在此处输入图片说明

任何帮助和建议都将受到高度赞赏。 谢谢。

在Scrollview中有两个表视图是一个不好的设计IMO。 即使进入Android开发领域的另一端,也建议您不要这样做。 根据您提供的有关如何放置两个表格视图的图片,可能还需要:

  1. 两个分开的数组,用于存储要排序的数据,降序排列,一个用于升序排列。
  2. 分两部分填充表格视图。 如果第0节用于升序项,则使用升序数据/数组在该节中加载行/单元格数据,然后使用降序数据/数组对第1节执行相同的操作。 这可以通过节和单元格的数据源方法实现内的条件语句轻松实现。
  3. 如果您认为仍然必须在每个已经由节分隔的单元上实现节,则可以通过各种方式创建一个自定义单元以用作类似节的布局。 您不仅可以创建自定义单元,还可以小心处理它们。
  4. 如果仅此简单方法还不够,那么您可以通过集合视图使用更高级的实现,并且根据您的问题已经是另一个主题了。

当前设计的主要问题(在滚动视图中使用2个表视图)很可能会导致数据加载效率低下,因为您需要在两个表上加载所有数据,只是为了确定滚动视图的内容高度。 除了手势需要额外的路由这一事实之外,您当前的设计还会限制您的应用延迟加载当前需要显示的单元格/数据的能力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM