如何将文本字段设为行而不是框?

时间:2017-01-03 11:29:51

标签: ios swift3 uitextfield

这是Textfields的理想设计:

This is the desired design for the Textfields

这就是我设计的:

This is what I have designed

我是否必须导入一些库或安装一些pod?有没有一种程序化的方法来做到这一点?

3 个答案:

答案 0 :(得分:1)

以下是代码。

@IBOutlet weak var fullName: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()

    let bottomBorder = CALayer()
    bottomBorder.frame = CGRect(x: 0, y: fullName.frame.size.height-1, width: fullName.frame.size.width, height: 1.0)
    bottomBorder.backgroundColor = UIColor.white.cgColor
    fullName.layer.addSublayer(bottomBorder)
}

输出:

enter image description here

答案 1 :(得分:0)

在swift中,我用以下代码实现了它:

class viewController: UIViewController 
{
    @IBOutlet weak var textfield: UITextField!

    let layer : CALayer = CALayer()

    override func viewDidLoad()
    {
         textfield.borderStyle = .none // can do this in xib or storyboard too
         textfield.layer.masksToBounds = true
         layer?.borderColor = UIColor.lightGray.cgColor
         layer?.borderWidth = 1.0
         textfield.layer.addSublayer(layer)
    }

   override func viewDidLayoutSubviews() 
   {

        layer?.frame = CGRect(x: 0,
                               y: textfield.frame.size.height - 1,
                               width:  textfield.frame.size.width,
                               height: 1.0)



    }

}

答案 2 :(得分:0)

您可以使用CosmicMind的Material框架并使用textfield对象。您可以通过cocoapods安装框架,您可以按照它们在repo上的示例进行操作。