Objective c 在Ios中创建只有底线的文本字段
可以在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
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
}
}