【发布时间】:2018-06-10 20:45:42
【问题描述】:
我遇到了一个问题,即在嵌入 UIViewController 的 UITableView 上滚动时,大标题导航栏会非常突然地折叠。该问题似乎仅在向上滚动屏幕时发生。在屏幕上向下滚动时,标题会平滑过渡到再次变大,但反之则不然。
如果使用 UITableViewController,则不会出现此问题。
这是在 UITableViewController 内滚动时的正常预期行为。
这是在 UIViewController 中使用 UITableView 时出现的中断、突然的过渡。
这是损坏的实现的代码:
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 12
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Basic", for: indexPath)
cell.textLabel?.text = "Title \(indexPath.row)"
return cell
}
}
导航栏已选中首选大标题,并且导航项已将大标题设置为自动。
上面两个示例的代码和配置完全相同,除了一个是 UITableViewController 与 UIViewController 内的 UITableView。
我还观察到,如果 UITableView 的内容不超过视图的高度,则不会发生损坏的行为。但一旦单元格数量超出屏幕显示范围,它就会中断。
知道我做错了什么还是 iOS 11 的错误?
【问题讨论】:
-
您如何配置导航栏?故事板,以编程方式?你能显示选项或代码吗?
-
我认为 UITableViewController 的实现可以正确处理这种行为。
-
@barbarity 我用更多信息编辑了我的 OP。
-
@AndyC 那里有相关文档吗?
-
哦,不。你完全正确。当内容大于屏幕时,它会突然折叠。我会调查
标签: swift xcode uitableview uiviewcontroller ios11