我想創建兩個只有底部邊框的UITextFields,我從另一個StackOverflow獲得了一些代碼並且它工作正常。但是,當我複製並粘貼代碼時,我的第二個TextField只顯示一個帶有底部邊框的TextField。創建只有底部邊框swift的兩個文本字段
下面是代碼:
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.gray.cgColor
border.frame = CGRect(x: 0, y: emailText.frame.size.height -
width, width: emailText.frame.size.width, height:
emailText.frame.size.height)
border.frame = CGRect(x: 0, y: passwordText.frame.size.height
- width, width: passwordText.frame.size.width, height:
passwordText.frame.size.height)
border.borderWidth = width
passwordText.layer.addSublayer(border)
passwordText.layer.masksToBounds = true
border.borderWidth = width
emailText.layer.addSublayer(border)
emailText.layer.masksToBounds = true
感謝您的幫助!
你不能對這兩個文本字段使用相同的vie。爲第二個邊框使用邊框的副本。使這項工作最簡單的方法是將一個變量細化爲border2並將其設置爲子圖層。 – Gihan
您的問題*很可能*您只創建了一個* border *實例,並且它不能被添加到兩個'UITextFields。你有幾個選擇 - (1)創建border的第二個實例,子類「UITextField」並讓子類有一個下邊框。它可能是「更清潔」(或更多OOP)的子類,但如果你不想重用這種類型的文本字段,除了在兩個實例中,創建兩個實例更容易 - 但將它們命名爲「pwBorder」和「emailBorder」明晰。 – dfd
@CalvinChange更改它,因爲你分配邊框,然後再分配它,所以它會得到覆蓋新的框架大小。 –