Objective c 在Ios中创建只有底线的文本字段

Objective c 在Ios中创建只有底线的文本字段,objective-c,uitextfield,Objective C,Uitextfield,可以在Ios中创建一个文本字段,该字段只显示底部边框线,而不显示上部和侧面线条。如果是,我如何实现这一点是的,这是可能的。以下是如何做到这一点: CALayer *border = [CALayer layer]; CGFloat borderWidth = 2; border.borderColor = [UIColor darkGrayColor].CGColor; border.frame = CGRectMake(0, textField.frame.size.height - bord

可以在Ios中创建一个文本字段,该字段只显示底部边框线,而不显示上部和侧面线条。如果是,我如何实现这一点

是的,这是可能的。以下是如何做到这一点:

CALayer *border = [CALayer layer];
CGFloat borderWidth = 2;
border.borderColor = [UIColor darkGrayColor].CGColor;
border.frame = CGRectMake(0, textField.frame.size.height - borderWidth, textField.frame.size.width, textField.frame.size.height);
border.borderWidth = borderWidth;
[textField.layer addSublayer:border];
textField.layer.masksToBounds = YES;

希望这有帮助

Swift中用户4645956的解决方案

private func addBottomLineToTextField(textField : UITextField) {
    let border = CALayer()
    let borderWidth = CGFloat(1.0)
    border.borderColor = UIColor.whiteColor().CGColor
    border.frame = CGRectMake(0, textField.frame.size.height - borderWidth, textField.frame.size.width, textField.frame.size.height)
    border.borderWidth = borderWidth
    textField.layer.addSublayer(border)
    textField.layer.masksToBounds = true
}
用法:

    self.addBottomLineToTextField(usernameTextField)
    self.addBottomLineToTextField(passwordTextField)
斯威夫特:

可以这样称呼:

yourtextFieldName.useUnderline()

只需在Ios中使用CALayer到文本字段,并仅使用底线即可

CALayer *bottomBorder = [CALayer layer];
bottomBorder.frame = CGRectMake(0.0f, self.passwordField.frame.size.height - 1, self.passwordField.frame.size.width, 1.0f);
bottomBorder.backgroundColor = [UIColor blackColor].CGColor;
[self.passwordField.layer addSublayer:bottomBorder];
更新为Swift 3.0

extension UITextField {    

    func useUnderline() {
        let border = CALayer()
        let borderWidth = CGFloat(1.0)
        border.borderColor = UIColor.lightGray.cgColor
        border.frame = CGRect(origin: CGPoint(x: 0,y :self.frame.size.height - borderWidth), size: CGSize(width: self.frame.size.width, height: self.frame.size.height))
        border.borderWidth = borderWidth
        self.layer.addSublayer(border)
        self.layer.masksToBounds = true
    }
}

谢谢,成功了。有什么方法可以将默认文本设置为文本框,但当我设置txtview.text.length时,它仍然显示0,即当我输入真实文本时,长度应该只增加。您可以输入
UILabel
。您可以解释更多关于它的信息吗?如果您给我发送指向新问题的链接,我将很高兴。这是linkborder.frame=CGRectMake(0,self.frame.size.height-borderWidth,self.frame.size.width,borderWidth)
extension UITextField {    

    func useUnderline() {
        let border = CALayer()
        let borderWidth = CGFloat(1.0)
        border.borderColor = UIColor.lightGray.cgColor
        border.frame = CGRect(origin: CGPoint(x: 0,y :self.frame.size.height - borderWidth), size: CGSize(width: self.frame.size.width, height: self.frame.size.height))
        border.borderWidth = borderWidth
        self.layer.addSublayer(border)
        self.layer.masksToBounds = true
    }
}