UITableViewCell内容宽度错误

时间:2016-04-22 08:05:27

标签: ios swift uitableview

我在iOS 9,Swift 2中使用tableview 我不明白为什么,当我使用简单单元格创建表格视图时,即使我将容器视图设置为1000,我也会得到错误的contentview宽度。 单元格宽度正好为1000,但textLabel内部小于1000.同时分隔符居中且宽度错误。

如何正确显示单元格并覆盖整个容器视图?

所有内容都是以编程方式创建的。

这是我的代码:

    if tableView == nil {
        tableView = UITableView(frame: CGRect(x: 0, y: 44/*88*/, width: self.view.bounds.size.width, height: self.view.bounds.size.height - 44/*88*/), style: UITableViewStyle.Plain)
        tableView!.delegate = self
        tableView!.backgroundColor = .clearColor()
        tableView!.dataSource = self
        tableView!.rowHeight = 40.0
        tableView!.allowsSelection = false
        tableView!.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

        view.addSubview(tableView!)

        tableView!.reloadData()
    }

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var MyIdentifier: String = "MyReuseIdentifier"
    var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier(MyIdentifier)
    if cell == nil {
        cell = UITableViewCell(style: .Default, reuseIdentifier: MyIdentifier)
    }
    cell!.textLabel!.text = "Test"
    cell!.backgroundColor = .clearColor()
    cell!.textLabel!.textColor = .blackColor()
    return cell!
}

3 个答案:

答案 0 :(得分:2)

this.button1Handler().init();

这是解决方案!

没有必要设置contentInsets。

答案 1 :(得分:0)

虽然单元格的宽度是整个视图的宽度,但它的内容视图在所有方面都被(我认为)8个点嵌入,因此标签不会跨越整个屏幕

要使标签跨越整个屏幕宽度,请创建自定义单元格类,并为其标签添加约束以解决此问题。 (标签导致内容视图领先= -8.0)

答案 2 :(得分:0)

您可以查看

tableView.contentInset

然后更新左侧插图。另外,检查您是否没有给出任何约束,例如leadingSpace。或UITableView本身的边距。同样你有

cell.separatorInset

默认情况下,左侧填充为5,因此请将其设为0。