微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何向 TableView 部分标题添加左边距?

如何解决如何向 TableView 部分标题添加左边距?

我想为我的 TableView 节标题添加一个左边距(即左边缘和节标题间的空间)。

enter image description here

我正在添加具有以下内容的部分标题

func tableView(_ tableView: UITableView,viewForHeaderInSection section: Int) -> UIView? {
    let label = UILabel()
    label.backgroundColor = UIColor.white
    switch section {
    case 0:
        label.text = "Section Header 1"
    case 1:
        label.text = "Section Header 2"
    case 2:
        label.text = "Section Header 3"
    case 3:
        label.text = "Section Header 4"
    default:
        label.text = nil
    }
    return label
}

我已经添加一个 .contentInset 来在其他组件中完成类似的工作,但我认为这在这里不起作用。有什么可以添加label 属性来实现左边距的吗?

解决方法

使用一个额外的视图并调整框架。

func tableView(_ tableView: UITableView,viewForHeaderInSection section: Int) -> UIView? {
    let sectionView = UIView()
    let label = UILabel(frame: CGRect(x: 20,y: 0,width: tableView.bounds.width - (20 * 2),height: sectionView.bounds.height))
    label.backgroundColor = UIColor.white
    switch section {
    case 0:
        label.text = "Section Header 1"
    case 1:
        label.text = "Section Header 2"
    case 2:
        label.text = "Section Header 3"
    case 3:
        label.text = "Section Header 4"
    default:
        label.text = nil
    }
    
    sectionView.addSubview(label)
    return sectionView
}

,

调整缩进,没有多余的视图

func tableView(_ tableView: UITableView,viewForHeaderInSection section: Int) -> UIView? {
    let label = UILabel()
    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.firstLineHeadIndent = 20
    let content: String
    switch section {
    case 0:
        content = "Section Header 1"
    case 1:
        content = "Section Header 2"
    case 2:
        content = "Section Header 3"
    case 3:
        content = "Section Header 4"
    default:
        content = ""
    }
    let attributedString = NSAttributedString(string: content,attributes: [.paragraphStyle : paragraphStyle,.backgroundColor: UIColor.white])
    label.attributedText = attributedString
    return label
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。