2015-04-03 86 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 
    } 
}