我目前正在研究iOS中的一个项目(使用XCode和Swift)。我正在尝试为登录视图实现以下UITextField:
我正在考虑采取不同的方法来进行此操作,它们似乎都很复杂。如果有人知道执行此操作的 super 简单方法,或者已经有可用于创建此TextView的cocoapod,那将是惊人的。
这是我正在考虑的几种方法:
如果用户在此处仔细查看“EMAIL”和“PASSWORD” UILabel,则可以看出它没有透明的背景,并且具有设置的背景颜色,以便遮挡UITextField的边框。
而不是这样做,我想实际上停止绘制边框,这使我进入了第二种可能的实现方法。
我无法提出任何其他实现此方法的方法,但是如果有一个不太麻烦的解决方案,我将不胜感激。
最佳答案
我相信这样做的一种方法是绘制各个边界:
extension UITextField {
func border(position: CGFloat) {
let leftBorder = CALayer()
leftBorder.frame = CGRect(x: CGFloat(0.0), y: CGFloat(0.0), width: CGFloat(1.0), height: CGFloat(self.frame.size.height))
leftBorder.backgroundColor = UIColor.black.cgColor
self.layer.addSublayer(leftBorder)
let rightBorder = CALayer()
rightBorder.frame = CGRect(x: CGFloat(self.frame.size.width - 1), y: CGFloat(0.0), width: CGFloat(1.0), height: CGFloat(self.frame.size.height))
rightBorder.backgroundColor = UIColor.black.cgColor
self.layer.addSublayer(rightBorder)
let bottomBorder = CALayer()
bottomBorder.frame = CGRect(x: CGFloat(0.0), y: CGFloat(self.frame.size.height - 1), width: CGFloat(self.frame.size.width), height: CGFloat(1.0))
bottomBorder.backgroundColor = UIColor.black.cgColor
self.layer.addSublayer(bottomBorder)
let topBorder = CALayer()
topBorder.frame = CGRect(x: CGFloat(0.0), y: CGFloat(0.0), width: CGFloat(25.0), height: CGFloat(1.0))
topBorder.backgroundColor = UIColor.black.cgColor
self.layer.addSublayer(topBorder)
let width = CGFloat(self.frame.size.width - position)
let topBorder2 = CALayer()
topBorder2.frame = CGRect(x: position, y: CGFloat(0), width: width, height: CGFloat(1.0))
topBorder2.backgroundColor = UIColor.black.cgColor
self.layer.addSublayer(topBorder2)
}
关于uiview - UIView边框中的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43484965/