Cell跑出桌面iOS 10

时间:2017-02-22 12:20:12

标签: ios swift tableview

enter image description here enter image description here

我在右边实现了表视图。正如你所看到的,细胞走出了桌面视图。 (它甚至一直向下运行) 我试过设置单元格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!
}

有什么不对吗?

2 个答案:

答案 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的位置。在这里:

adjusting top constraint

答案 1 :(得分:0)

尽量让你的桌边有些颜色,这样你才能看到变化。然后像查询中所说的那样尝试tableview的cliptobonds属性而不是单元格。