我的tableview存在滚动视图问题。桌子最后被切断了。
这是我的故事板(对表格禁用了滚动)。该按钮只是我真实应用中某些内容的占位符:
这是桌级课程(我从昨天的问题中知道,我只能解决问题):
class Table: UITableView, UITableViewDataSource, UITableViewDelegate{
let sections: [String] = ["Section 1", "Section 2", "Section 3"]
let s1Data: [String] = ["Row 1", "Row 2", "Row 3"]
let s2Data: [String] = ["Row 1", "Row 2", "Row 3"]
let s3Data: [String] = ["Row 1", "Row 2", "Row 3"]
var sectionData: [Int: [String]] = [:]
override func awakeFromNib() {
super.awakeFromNib()
delegate = self
dataSource = self
register(UINib(nibName: "Cell", bundle: nil), forCellReuseIdentifier: "Cell")
sectionData = [0:s1Data, 1:s2Data, 2:s3Data]
rowHeight = UITableViewAutomaticDimension
estimatedRowHeight = 96.0
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)
-> Int {
return (sectionData[section]?.count)!
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int)
-> String? {
return sections[section]
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return sections.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "Cell")
return cell!
}
}
单元格本身的高度为340,表格中应为其中的三个。
ViewController对表的高度和表本身有约束。我在stackoverflow上阅读了有关此解决方案的内容。当我在约束 - 常量 - 设置断点时,高度约为1000,所以此时这是正确的。:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tableHeight: NSLayoutConstraint!
@IBOutlet weak var table: Table!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
tableHeight.constant = table.contentSize.height
}
}
我尝试了不同的建议如何摆脱问题。但不知怎的,我想念一些东西。有人可能会给我一个建议。
答案 0 :(得分:0)
我根据您的要求设置了所有约束 ,我已经安装了顶部,左侧,右侧和底部约束 ScrollView和ContentView并给出相等的宽度和高度 contentView到主视图,因此scrollview将自动获取 内容大小越大。
如果你只想滚动ScrollView而不是你的tableView 你可以给一个固定的高度约束TableView,创建一个固定高度Constarint的NSLayoutConstraint的 @IBOutlet 并更新它 通过计算所有行高来恒定!
第一种方法:
第二种方法:
在viewDidLoad方法中尝试这个:
从底部为tableView提供填充:
这里我给了tableView底部一个20.0固定的填充,你可以根据你的要求给出。
<p:scrollPanel mode="native"...>
这是演示链接:https://drive.google.com/file/d/0B-VsxWuYK8apODhXSnc1aVM5djQ/view