2015-04-03 11 views

Antwort

51

Ja, es ist möglich. Hier ist, wie es geht:

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; 

Hoffe das hilft !!

+0

Dank es funktionierte zu textfield. Gibt es eine Möglichkeit, wie ich Standardtext zu einem Textfeld festlegen kann, aber wenn ich txtview.text.length es zeigt immer noch 0, d. H. Länge sollte nur inkrementieren, wenn ich echten Text eingeben –

+0

Sie können ein 'UILabel'. –

+1

Kannst du mehr darüber erklären –

-1

User4645956 Lösung in Swift

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 
} 

Verbrauch:

self.addBottomLineToTextField(usernameTextField) 
    self.addBottomLineToTextField(passwordTextField) 
8

Swift:

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 
    } 
} 

es so Aufruf:

yourtextFieldName.useUnderline() 
+0

border.frame = CGRectMake (0, self.frame.size.height - borderWidth, self.frame.size.width, borderWidth) –

0

einfach CALayer verwenden mit nur Bottom Line in Ios

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

Aktualisiert für 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 
    } 
} 
Verwandte Themen