2015-04-03 82 views

回答

51

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

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; 

希望这有助于!

+0

由于它的工作,只有底线文本框。有什么办法可以将默认文本设置为文本框,但是当我做txtview.text.length时,它仍然显示0,即只有当我输入真实文本时长度才会增加 – 2015-04-03 08:08:16

+0

您可以放入一个'UILabel'。 – 2015-04-03 08:10:14

+1

你能解释一下吗? – 2015-04-03 08:11:31

-1

User4645956在迅速解决

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) 
8

斯威夫特:

extension UITextField { 

    func useUnderline() { 

     let border = CALayer() 
     let borderWidth = CGFloat(1.0) 
     border.borderColor = UIColor.blackColor().CGColor 
     border.frame = CGRectMake(0, self.frame.size.height - borderWidth, self.frame.size.width, self.frame.size.height) 
     border.borderWidth = borderWidth 
     self.layer.addSublayer(border) 
     self.layer.masksToBounds = true 
    } 
} 

这样称呼它:

yourtextFieldName.useUnderline() 
+0

border.frame = CGRectMake(0,self.frame.size.height - borderWidth,self.frame.size.width,borderWidth) – 2017-04-14 10:13:26

0

只需使用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]; 
16

更新了雨燕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 
    } 
}