我无法像图片一样在tableView上对齐单元格

时间:2019-01-15 13:58:46

标签: swift xcode constraints

我需要以编程方式垂直对齐单元格

cell.textLabel?.textAlignment = .center

enter image description here

2 个答案:

答案 0 :(得分:0)

cell.textLabel?.textAlignment = .center

将标签内的文本对齐,您也需要

cell.textLabel?.center = cell.center

答案 1 :(得分:0)

首先讲逻辑。由于您的标签的文本对齐方式为居中,因此如何根据需要使标签的文本对齐方式为

你有这个:

enter image description here

但是您的目标应该是这个

enter image description here

...只是向左移动。


因此,我认为使用默认textLabel来实现此目标很困难,因为它是内置样式,不支持很多自定义。

但是,您可以使用自定义UITableViewCell创建自定义UILabel子类。

首先将标签拖动到原型单元格,并将其主要约束条件设置为所需的值(这将是单元格左边缘和标签之间的空间)

enter image description here

还将其中心Y 设置为等于 superview的中心Y ,因为我们需要标签的顶部和底部之间的空间相同。

enter image description here

enter image description here


现在只需为您的单元创建自定义子类,然后在情节提要板中设置单元的类

class CustomCell: UITableViewCell {}

enter image description here

...然后将标签出口连接到单元格子类

class CustomCell: UITableViewCell {
    @IBOutlet weak var label: UILabel!
}

继续为您的单元设置设置标识符

enter image description here

此标识符现在在表格视图的数据源方法cellForRowAt中使用以获取您的自定义单元格,并且不要忘记对其进行下标。现在,当您引用单元格子类时,只需更改自定义标签的文本

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell
    cell.label.text = "Title"
    return cell
}