我想为我的UITextField添加边框,就像这张图片
一样所以我使用了这段代码
let rectShape = CAShapeLayer()
rectShape.bounds = self.userNameText.frame
rectShape.position = self.userNameText.center
rectShape.path = UIBezierPath(roundedRect: self.userNameText.bounds, byRoundingCorners: [ UIRectCorner.TopLeft , UIRectCorner.BottomRight ], cornerRadii: CGSize(width: 5.0 , height: 5.0)).CGPath
self.userNameText.layer.backgroundColor = UIColor.redColor().CGColor
//Here I'm masking the textView's layer with rectShape layer
self.userNameText.layer.mask = rectShape
但结果是这样的
我错过了什么吗?
答案 0 :(得分:3)
为文本字段添加边框,并根据需要设置其background
。
self.textField.borderStyle = .None
let path = UIBezierPath(roundedRect: self.textField.bounds, byRoundingCorners: [ UIRectCorner.TopLeft , UIRectCorner.BottomRight ], cornerRadii: CGSize(width: 8.0 , height: 8.0))
UIGraphicsBeginImageContextWithOptions(self.textField.bounds.size, false, 0)
path.stroke()
self.textField.background = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
答案 1 :(得分:0)
尝试更改
中的代码rectShape.path = UIBezierPath(roundedRect: self.userNameText.bounds, byRoundingCorners: [ UIRectCorner.TopLeft , UIRectCorner.BottomRight ], cornerRadii: CGSize(width: 5.0 , height: 5.0)).CGPath
到
rectShape.path = UIBezierPath(roundedRect: self.userNameText.bounds, byRoundingCorners: [ UIRectCorner.BottomRight , UIRectCorner.TopLeft ], cornerRadii: CGSize(width: 5.0 , height: 5.0)).CGPath
并查看右下角是否正确,如左上角现在正好,如果左上角看起来像右下角那么现在。奇怪的是,除了左上角之外,所有角落都像这样四舍五入。
建议:试用textFieldEffects。这是一个非常酷的开源项目,允许您在故事板中创建现代的,视觉上吸引人的文本字段,而无需任何代码!我刚刚在我的应用程序中实现它,它看起来很棒!我唯一的抱怨是我无法使用didBeginEditing和didEndEditing函数(可能是我的问题)。