【问题标题】:How to move a table content to the top of the screen?如何将表格内容移动到屏幕顶部?
【发布时间】:2018-04-10 23:40:52
【问题描述】:

我还是 iOS 和 Swift 的新手,我正在使用 Swift4 和 Xcode9 来编辑一个使用早期版本的 Xcode 和 Swift(Xcode8 和 Swift3)制作的 iOS 项目。在项目中有一个 TableViewController 使用。所以问题是当我在 Xcode9 中打开项目并运行它时,它会在顶部显示一些空间。我尝试更改 y 值,但没有奏效。我的问题是,

  1. 如何解决上面提到的问题。 (Stack Overflow中已经有这样的问题。但这不是由于不同的Xcode版本。但我什至尝试了答案中的所有建议。但没有一个对我有用。)

  2. 当表格内容顶部有文本标签或其他内容时,我可以从顶部删除该空间,但它位于该标签和添加的表格之间。并且标签移动到顶部时无法获得点击操作或其他内容。如何解决?

任何建议/答案将不胜感激。谢谢!

【问题讨论】:

  • 选择你的控制器,然后点击顶部的yello图标,在属性检查器中查找automaticAdjustsScrollViewInsets,如果选中则取消选中。
  • @TusharSharma automaticallyAdjustsScrollViewInsets 已取消选中。
  • stackoverflow.com/a/46639988/3231194 可能会有所帮助。
  • 你在tableview中使用“estimatedHeight”方法吗?

标签: ios uitableview swift4 xcode9


【解决方案1】:

你可以试试这个

 if #available(iOS 11.0, *) {
    yourTableView.contentInsetAdjustmentBehavior = .never
 }

【讨论】:

  • 感谢您的建议。但这可能适用于 UICollectionView。我没有 UICollectionView 。我有一个 UITableView。
  • 我在 UITableView 中使用了这个 sn-p。它与集合或表格无关。这是 UIScrollView 的属性,表和集合都是子类
  • 对不起,我发现你的答案几乎是正确的,但是它将内容移动到屏幕顶部,这意味着导航行级别。然后第一行隐藏在导航行后面。如果您也有解决方案,我很高兴。
  • 通过在属性检查器的情节提要中选择视图控制器来取消选中 Under Top 栏,并将顶部约束设为零的表格添加
  • 在情节提要上转到您的视图控制器,选择视图控制器,然后转到属性检查器,然后取消选中选项在顶部栏
【解决方案2】:

好的,我将尝试回答您的问题,但我并不完全肯定,因为您没有包含任何代码或屏幕截图。

首先。如果您的意思是 tableView 的开始位置和显示第一个单元格的位置之间似乎存在差距,那么这是正确的。您可以通过以下方式解决此问题:

tableView.contentInset = .zero

这意味着tableView 开始内的任何内容都会一直到边缘。

现在是标签接收触摸。您想查看故事板上的用户交互启用值:

当您有相互堆叠的视图时,如果顶部的视图启用了用户交互,则 UNDER 视图将不会收到触摸。如果您想通过另一个视图流血,您可以

1) 通过不将视图相互堆叠来避免此问题(通常是不可避免的,例如在视图上放置标签并希望背景视图执行某些操作)

2) 关闭顶部视图上的用户交互,以便底部视图获得触摸

【讨论】:

  • 对不起,我无权添加截图或源代码。而且我认为源代码不是必需的。但即使是这样,我也无法添加这些。无论如何,您给出的答案在我的情况下不起作用,但感谢您的尝试,这是一个准备充分的答案。
【解决方案3】:

tableView.setContentOffset(CGPoint.zero, animated: true)

这段代码会移动

【讨论】:

  • 感谢您的尝试,但这在我的情况下不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 2010-11-16
  • 2016-12-01
  • 1970-01-01
相关资源
最近更新 更多