TableView 部分更改标题对齐方式

Posted

技术标签:

【中文标题】TableView 部分更改标题对齐方式【英文标题】:TableView Section Change Header Alignment 【发布时间】:2017-03-19 09:16:32 【问题描述】:

我有这个tableView这里:

使用默认的左文本对齐方式,我想将其更改为右文本对齐方式。我该怎么做?

编辑:

现在看起来像这样:

【问题讨论】:

您使用的是 Swift 2 还是 3? @GeorgeH Swift 2.3 @GeorgeH 我有一些奇怪的间距问题你能帮我吗? 【参考方案1】:

斯威夫特 4

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? 
    return "Your Header Name"


func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
    let header: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
    header.textLabel?.font = UIFont(name: "YourFontname", size: 14.0)
    header.textLabel?.textAlignment = NSTextAlignment.right

【讨论】:

完美运行! IMO,这是比标记答案更好的解决方案 这就是我喜欢的方式,原生快捷方便? 对于这个世界的新手,不要忘记在你的viewDidLoad中调用.delegate = self 示例:self.tableView.delegate = self【参考方案2】:

你必须在 UITableView 数据源方法 viewForHeaderInSection 中这样做:

Swift 2.3:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
    let headerText = UILabel()
    headerText.textColor = UIColor.lightGrayColor()
    headerText.adjustsFontSizeToFitWidth = true
    switch section
    case 0:
        headerText.textAlignment = .Center
        headerText.text = "This Header Will Be Centered"
    case 1:
        headerText.textAlignment = .Right
        headerText.text = "This Header Will Be Aligned Right"
    default:
        headerText.textAlignment = .Left
        headerText.text = "Default Will Be Left"
    

    return headerText

编辑:修改了上面的代码。您可以使用section 参数来标识要修改的部分。

【讨论】:

我收到此错误:致命错误:在展开可选值时意外发现 nil 它部分工作......现在我所有的部分都有标题文本,但我只想在其中的一些中包含标题文本,并为每个部分自定义文本。 +如果我可以问的话,我想要我原来的灰色:D @NewbieQuestions 更新了代码以识别您需要的部分。 好吧,现在看起来好多了,但还有一件事,当我的原始文本正好合适时,标签的末端会出现点...知道如何解决这个问题吗? 更新了代码。您需要提出新问题的任何进一步自定义。

以上是关于TableView 部分更改标题对齐方式的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX TableView 文本对齐

如何更改自动生成的列文本对齐方式

为啥自定义字体会移动文本(更改垂直对齐方式)? [复制]

如何更改 Highchart 中图例的布局和对齐方式?

Swiftui - ***选择器,更改对齐方式和字体大小

如何根据 Vuetify 中的屏幕大小更改对齐方式?