对不起,如果这是一个基本问题。我有一个UIView控制器,其表视图从屏幕中间开始。我可以滚动我的表格视图,但我希望能够滚动整个屏幕,而不仅仅是从表格视图开始。现在,当我滚动时,屏幕的上半部分保持固定,只有表视图滚动,但我想开始滚动整个屏幕。
试试这个:
在情节提要中选择表视图,然后关闭启用滚动(在属性检查器的"滚动视图"部分下(。
或者,将其放入 TableViewController viewDidLoad:
tableView.isScrollEnabled = false
我不知道你想要什么样的效果,但你可以像这样使用表格的内容插图视图:
import UIKit
class ViewController : UIViewController {
let tableView: UITableView = {
let tv = UITableView()
tv.backgroundColor = .green
return tv
}()
override func viewDidLoad() {
super.viewDidLoad()
title = "Scrolling"
view.backgroundColor = .blue
view.addSubview(tableView)
tableView.frame = view.frame
let SCREENH = UIScreen.main.bounds.height
tableView.contentInset = UIEdgeInsets(top: SCREENH/2, left: 0, bottom: 0, right: 0)
tableView.delegate = self
tableView.dataSource = self
}
}
extension ViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel?.text = "Cell (indexPath.row)"
return cell
}
}
或者,如果您在 tableView 顶部有内容并且不希望 contentInset 方法给出的效果,为什么不为您的 tableView 实现一个标头并将您的信息放在那里。
希望对你有帮助
最简单的选项是在情节提要中选择表视图,然后单击属性。在那里,您会发现复选框"已启用滚动",只需取消选中该复选框,然后禁用表视图的滚动。
如果您澄清我哪个容器(滚动视图或您用作超级视图的任何其他内容(,我可以为您提供更多帮助