ios - ScrollView 中的 TableView

标签 ios iphone swift uitableview uiscrollview

我的 Swift 应用程序有这个点击问题。我在 UIScrollView 中构建了一个带有 2 个 UITableView 的配置文件屏幕。但是,只有 1 个 UITableCell 是可点击的(必须将两个表分开的原因是因为顶表是按 ASC 排序的 - 从最近到 future 的日期,而底表是按 DESC 排序 - 从最从最近到最老)。

enter image description here

表格会根据下面代码中显示的内容自动拉伸(stretch)。问题是只有第一个项目是可点击的。

使用 1 个 UITableView 在其他屏幕上一切正常。我还使用 UI 调试器确保表格前面没有 View 。

// 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

enter image description here

非常感谢任何帮助和建议。谢谢。

最佳答案

在一个 ScrollView 中有两个 TableView 在我看来是一个糟糕的设计。甚至去 Android 开发宇宙的另一边也会建议你不要这样做。根据您提供的关于如何放置两个 TableView 的图片,还不如:

  1. 两个单独的数组用于您希望降序排列的数据,一个用于升序排列。
  2. 分两部分填充您的 TableView 。如果第 0 部分用于升序项目,则使用升序数据/数组加载该部分中的行/单元格数据,然后使用降序数据/数组对第 1 部分执行相同的操作。这可以通过部分和单元格的数据源方法实现中的条件语句轻松实现。
  3. 如果您认为您仍然需要在每个已经按部分分隔的单元格上实现部分,那么您可以通过各种方式创建一个自定义单元格来充当类似部分的布局。您不仅限于创建自定义单元格,只需小心处理它们即可。
  4. 如果这种简单的方法还不够,那么您可以使用 Collection View 来使用更高级的实现,根据您的问题,这已经是一个不同的主题。

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

关于ios - ScrollView 中的 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41222060/

相关文章:

ios - 为什么 DetailViewController 会弹出到带有选项卡栏和导航 Controller 的第一个 DetailViewController?

swift - 核心蓝牙用数据创建CBUUID

ios - 具有多个窗口的 UIStatusBar 外观

iphone - 有一种方法可以告诉用户何时完成按时间间隔的输入?

iphone - 从 NSMutableArray 下载时“for”循环崩溃

iphone - 带图像的 uibutton

swift - CGPoint 读数在 500,000,000 的极端坐标处不准确

ios - 如何在 Swift 中按图像大小调整 UIImageView 的大小

ios - iOS 操作完成后,将按钮 "username"更改为文本字段

ios - 在 Swift 中从多个服务解码 JSON 的更简单方法