作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
你可以这样做:
1)创建UIView或UITableViewCell类:
class ConfirmTableViewCell: UITableViewCell {
@IBOutlet weak var symbolsTextField: UITextField!
@IBOutlet weak var firstLabel: UILabel!
@IBOutlet weak var secondLabel: UILabel!
@IBOutlet weak var thirdLabel: UILabel!
@IBOutlet weak var fourthLabel: UILabel!
var code: String = ""
override func awakeFromNib() {
super.awakeFromNib()
symbolsTextField.delegate = self
symbolsTextField.becomeFirstResponder()
resetContent()
}
func resetContent() {
firstLabel.text = nil
secondLabel.text = nil
thirdLabel.text = nil
fourthLabel.text = nil
}
}
2)添加xib或者你可以在 Storyboard中完成。将 UITextField
添加到 UIView
并使用清晰的文本颜色。
3)添加扩展:
extension ConfirmTableViewCell: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if range.location > 3 {
textField.text?.removeLast()
}
setupLabels(character: string, range: range)
return true
}
func setupLabels(character: String, range: NSRange) {
if range.location > 3 {
self.code.removeLast()
}
if range.length == 0 {
self.code += character
} else {
self.code.removeLast()
}
var codeString: String = self.code
if let symbol = codeString.first {
firstLabel.text = String(symbol)
codeString.removeFirst()
} else {
firstLabel.text = nil
}
if let symbol = codeString.first {
secondLabel.text = String(symbol)
codeString.removeFirst()
} else {
secondLabel.text = nil
}
if let symbol = codeString.first {
thirdLabel.text = String(symbol)
codeString.removeFirst()
} else {
thirdLabel.text = nil
}
if let symbol = codeString.first {
fourthLabel.text = String(symbol)
} else {
fourthLabel.text = nil
}
}
}
关于swift - 如何在 Swift 中通过 ImageView 创建自定义文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380632/
我是一名优秀的程序员,十分优秀!