-1
我想添加一個「錯誤消息」氣泡出現在文本框頂部,當用戶輸入不正確的值。我一直在使用可以正常工作的.leftView屬性,但它佔用了textField中的「空間」,將內容推向右側。將leftView顯示爲「覆蓋圖」而不是在該領域本身的最佳方式是什麼? (即刪除它的邊界)UITextfield leftView作爲覆蓋
class ValidatedTextField: UITextField {
override init(frame: CGRect) {
super.init(frame: frame)
// Defaults
maxLength = 40
layer.sublayerTransform = CATransform3DMakeTranslation(leftPadding, 0, 0)
backgroundColor = UIColor.whiteColor()
// Listen in on own text input
self.addTarget(self, action: "textHasChanged", forControlEvents: UIControlEvents.EditingChanged)
self.addTarget(self, action: "checkTextValid", forControlEvents: UIControlEvents.EditingDidEnd)
}
override func layoutSubviews() {
super.layoutSubviews()
// Add error label message
labelMessage.frame = CGRectMake(10-leftPadding, -10, self.bounds.size.width-20, 24)
labelMessage.backgroundColor = .blackColor()
labelMessage.text = "Message goes here"
labelMessage.font = UIFont.boldSystemFontOfSize(16)
labelMessage.textColor = .whiteColor()
labelMessage.textAlignment = .Center
labelMessage.layer.cornerRadius = 8
self.leftView = labelMessage
self.leftViewMode = .Always
}
}
難道你不能只是創建一個氣泡視圖,並將其作爲子視圖添加到您的視圖控制器? – almas
這是真的,但我試圖做一個自定義的UITextField,分開處理所有這些。它使得表單驗證更容易分離所有的代碼,所以我可以在其他地方使用它。 – Alex
請將您的代碼添加到問題 –