如何在uiTableViewCell内的uiTextField下画一条线?

Posted

技术标签:

【中文标题】如何在uiTableViewCell内的uiTextField下画一条线?【英文标题】:How to draw a line under uiTextField inside uiTableViewCell? 【发布时间】:2016-09-23 19:54:26 【问题描述】:

我正在尝试创建只有底部边框的文本字段。该字段放置在动态单元格内并使用情节提要创建。边框样式设置为无。自动布局已打开。这条线在layoutSubviews() 中绘制。但是,该行没有出现。你能帮我修一下吗?提前谢谢!

代码如下:

extension UITextField 

    func drawUnderline() 
        let underline = CALayer()
        let underlineWidth = CGFloat(1.0)
        underline.borderColor = UIColor.black.cgColor
        underline.frame = CGRect(x: 0, y: self.frame.size.height - underlineWidth, width: self.frame.size.width, height: self.frame.size.height)
        underline.borderWidth = underlineWidth
        self.layer.addSublayer(underline)
        self.layer.masksToBounds = true
    




class TextFieldTableViewCell: UITableViewCell 

    @IBOutlet weak var editTextField: UITextField!

    override func awakeFromNib() 
        super.awakeFromNib()

    

    override func setSelected(_ selected: Bool, animated: Bool) 
        super.setSelected(selected, animated: animated)
    

    override func layoutSubviews() 
        super.layoutSubviews()
        self.editTextField.drawUnderline() // The line is drawn here
    


【问题讨论】:

【参考方案1】:

您可以从 Interface Builder 执行此操作。创建具有固定高度 = 1 的 UIView 并提供一些颜色(黑色),确保与文本字段的宽度相等,然后将没有边框的 UITextField 连接到该视图。所以垂直空间文本字段和视图之间的约束 = 0

【讨论】:

以上是关于如何在uiTableViewCell内的uiTextField下画一条线?的主要内容,如果未能解决你的问题,请参考以下文章

如何重新加载 uitableviewcell 内的集合视图

使用自定义 UITableViewCell 时在编辑之前更改 UITextField 文本

如何在uiTableViewCell内的uiTextField下画一条线?

如何动态调整 UITableViewCell 内的两个文本标签宽度?

转换到横向后如何更新 UITableViewCell 内的 UICollectionView

如何防止 UITableViewCell 内的手势干扰 UITableView 的滚动?