当使用大标题并点击状态栏以滚动到UIScrollView
或UITableView
(可能也UICollectionView
没有测试过)的顶部时,它总是有点过头了。
我已经启用了刷新TableView
,当点击状态栏时,它会像这样显示并保持这种状态,直到我点击屏幕。
我有ScrollView
另一个ViewController
,如果我点击那里的状态栏,它也会滚动有点太远,使导航栏太高。当我点击某个地方或滚动一点点时,这也会恢复正常。
这也仅在我激活大标题时才会发生,使用普通标题一切正常。
任何想法如何解决这一问题?
如何重新创建:
UIViewController
使用导航控制器和内部创建一个新项目TableView
。- 将导航控制器设置为更喜欢大标题。关闭半透明。设置标题
UIViewController
- 设置约束
TableView
以固定到边缘ViewController
TableView
在中创建出口ViewController
- 实现委托并设置行数,例如 100
- 启动应用程序
- 向下滚动,使大标题变为普通标题
- 点击状态栏,
tableView
滚动到顶部
现在标题不在应有的位置,如果您现在向上或向下滚动一点点,它就会恢复到正常位置。
ViewController
代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
}
extension ViewController: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 100
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TestCell", for: indexPath)
return cell
}
}