Ios 滚动视图中的表视图

Ios 滚动视图中的表视图,ios,iphone,swift,uitableview,uiscrollview,Ios,Iphone,Swift,Uitableview,Uiscrollview,我在我的Swift应用程序上有这个点击问题。我正在构建一个配置文件屏幕,在UIScrollView中有2个UITableViews。但是,只有1个UITableCell可单击(两个表必须分开的原因是,顶部的表按ASC排序-从最新日期到未来日期,而底部的表按DESC排序-从最近日期到最旧日期) 这些表格根据下面代码中显示的内容自动拉伸。问题是只有第一项是可点击的 使用1UITableView在其他屏幕中一切正常。我还使用UI调试器确保表前面没有视图 // Table 1 // UITableVi

我在我的Swift应用程序上有这个点击问题。我正在构建一个配置文件屏幕,在
UIScrollView
中有2个
UITableView
s。但是,只有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中有两个表视图在我看来是一个糟糕的设计。即使到了Android开发领域的另一边,也会建议你不要这样做。根据您提供的关于如何放置两个表视图的图片,您最好:

  • 两个单独的数组,用于按降序排列的数据,一个用于升序排列的数据
  • 在两个部分中填充表视图。如果节0用于升序项,则使用升序数据/数组加载该节中的行/单元格数据,然后使用降序数据/数组加载节1中的行/单元格数据。这可以通过节和单元的数据源方法实现中的条件语句轻松实现
  • 如果您认为仍然必须在每个已经分区的单元上实现分区,那么您可以通过各种方式创建一个自定义单元来充当类似于分区的布局。您不局限于创建自定义单元格,只需小心处理即可
  • 如果这种简单的方法还不够,那么您可以使用更高级的实现,使用集合视图,这已经是基于您的问题的不同主题了

  • 当前设计中的主要问题(在scrollview中使用两个TableView)很可能导致数据加载效率低下,因为您需要加载两个表上的所有数据来确定scrollview的内容高度。除了手势需要额外的路由之外,您当前的设计将限制您的应用程序只能懒洋洋地加载当前需要显示的单元格/数据。

    在scrollview中有两个表视图在我看来是一个糟糕的设计。即使到Android开发领域的另一端,也会建议您不要这样做。根据您提供的关于如何放置两个表视图的图片,您最好:

  • 两个单独的数组,用于按降序排列的数据,一个用于升序排列的数据
  • 在两个部分中填充表视图。如果节0用于升序项,则使用升序数据/数组加载该节中的行/单元格数据,然后使用降序数据/数组加载节1中的行/单元格数据。这可以通过节和单元的数据源方法实现中的条件语句轻松实现
  • 如果您认为仍然必须在每个已经分区的单元上实现分区,那么您可以通过各种方式创建一个自定义单元来充当类似于分区的布局。您不局限于创建自定义单元格,只需小心处理即可
  • 如果这种简单的方法还不够,那么您可以使用更高级的实现,使用集合视图,这已经是基于您的问题的不同主题了

  • 当前设计中的主要问题(在scrollview中使用两个TableView)很可能导致数据加载效率低下,因为您需要加载两个表上的所有数据来确定scrollview的内容高度。除了手势需要额外的路由这一事实之外,您当前的设计将限制您的应用程序只能懒洋洋地加载当前需要显示的单元格/数据。

    为什么不为所有内容使用一个
    UITableView
    ?^确切地说,在一个数组中使用一个tableview和所有排序逻辑。半desc和asc部分可以通过将数组分成两部分并排序,然后合并或使用键将其排序到一半来进行管理。但是,一旦您管理了数据,您的工作就会变得非常简单。两个表必须分开的原因是,顶部的表按ASC排序(从最近的日期到未来的日期),而底部的表按DESC排序(从最近的日期到最旧的日期)。您只能使用一个表,但要使用节@MagoNicolasPalacios每个表都有部分=dw为什么不为所有内容使用一个
    UITableView
    ?^确切地说,在一个数组中使用一个包含所有排序逻辑的tableview,视情况而定。半desc和asc部分可以通过将数组分成两部分并排序,然后合并或使用键将其排序到一半来进行管理。但是,一旦您管理了数据,您的工作就会变得非常简单。两个表必须分开的原因是,顶部的表按ASC排序(从最近的日期到未来的日期),而底部的表按DESC排序(从最近的日期到最旧的日期)。您只能使用一个表,但要使用节@MagoNicolasPalacios每个表都有部分=谢谢@Axel的回复。我同意你的回答=谢谢@Axel的回复。我同意你的回答=D