我的主视图是滚动视图,在此视图中我有一个内容视图 . 在这个视图中,我有三个不同的tableviews . tableviews具有可变数量的行,我在运行时设置每个tableView高度,具体取决于有多少个单元格 .
例如TableView 1的行高为72,运行时有三行 . 因此tableView高度等于72 * 3 = 216
然后我禁止滚动TableViews,以便我可以轻松滚动浏览整个视图 . 在每个tableView单元格中,都有执行某些操作的按钮 . 这些按钮使用按钮标签和与每个按钮绑定的动作完美地工作 . 这是问题,但......
这些按钮仅在加载初始时位于屏幕上时才有效 . 如果我的滚动视图超出屏幕底部,则所有按钮都将变为非活动状态 . TableView越过屏幕边缘并不重要,下面的所有按钮将不再有效 .
在加载tableView数据之前,我已经阅读了一些关于将内容视图高度设置为滚动视图的整个高度的论坛,但这似乎不起作用 . 这是我在加载tableData之前用来更改scrollView / contentView高度的代码 . 我可以显示您认为必要的任何其他代码来帮助解决问题 .
totalHeight = self.friendsTableHeight.constant + self.invitationsTableHeight.constant + self.suggestionsTableHeight.constant + 350
self.scrollView.contentSize = CGSize(width: UIScreen.main.bounds.width, height: totalHeight)
self.contentViewHeight.constant = totalHeight
DispatchQueue.main.async {
self.suggestionsTable.dataSource = self
self.friendsTableView.dataSource = self
self.invitationsTableView.dataSource = self
self.suggestionsTable.reloadData()
self.friendsTableView.reloadData()
self.invitationsTableView.reloadData()
}
我还尝试将我的contentView设置为clipToBounds,但这会切断屏幕下方表格的任何部分 . 现在正在研究这几个小时,并希望有人可能会遇到过这个!
1 回答
如果没有看到更多的代码或者如何设置约束,很难说出你做错了什么 . 然而...
下面是一个在scrollView中垂直布局的3个tableView的简单示例,它们之间的垂直间距为40磅 . 无论滚动位置如何,单元格中的按钮都能正常工作 .
故事板布局如下所示:
结果:
向下滚动后:
代码:
和故事板源(以帮助您获得正确的约束):