我在右边实现了表视图。正如你所看到的,细胞走出了桌面视图。 (它甚至一直向下运行) 我试过设置单元格cliptoBounds = true但是没有工作
var boxes = ["Box 1", "Box 2", "Box 3", "Box 4", "Box 5"]
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.historyTableViewOutlet.dequeueReusableCell(withIdentifier: "HistoryCell", for: indexPath) as! HistoryVC
cell.boxName.text = boxes[indexPath.row]
return cell
}
在HistoryVC中:`class HistoryVC:UITableViewCell {
//MARK: Outlets
@IBOutlet weak var placeholderView: UIView!
@IBOutlet weak var boxName: UILabel!
}
有什么不对吗?
答案 0 :(得分:0)
您要做的是为节标题创建UIView。 首先:确保使用Plain类型声明主Storyboard中的tableView。 第二:实现TableViewDelegate的2个方法
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = UIView(frame: CGRect(x: self.tableView.frame.minX, y: self.tableView.frame.minY, width: self.tableView.frame.size.width, height: 28))
let label = UILabel(frame: header.frame)
header.addSubview(label)
label.text = "SECTION HEADER"
label.textAlignment = .center
label.backgroundColor = UIColor(red: 0/255, green: 230/255, blue: 255/255, alpha: 0.9)
return header
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 28
}
当然,您需要为各个部分自定义该视图。只需在段号之间切换委托方法,并根据您的选择分配视图/文本/标签/颜色。 滚动1个部分内的单元格后,其标题将粘贴到顶部布局边框。
PS新细节之后:你应该设置一个约束来将tableView剪辑到顶部布局边框。单元格不会从tableView中逃脱。它们在包含tableView的scrollView中向上滚动,超出可见区域。只需输入精确约束即可修复tableView的位置。在这里:
答案 1 :(得分:0)
尽量让你的桌边有些颜色,这样你才能看到变化。然后像查询中所说的那样尝试tableview的cliptobonds属性而不是单元格。