我想爲我的UITextField創建一個動畫。要做到這一點,我創建了一個子類的UITextField的,我存儲在我的代碼有:斯威夫特動畫文本字段
import Foundation
import UIKit
class textfieldEdit: UITextField, UITextFieldDelegate {
let border = CALayer()
let width = CGFloat(2.0)
required init?(coder aDecoder: (NSCoder!)) {
super.init(coder: aDecoder)
self.delegate=self;
border.borderColor = UIColor(red: 216/255, green: 216/255, blue: 216/255, alpha: 100).cgColor
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
border.borderWidth = width
self.layer.addSublayer(border)
self.layer.masksToBounds = true
}
override func draw(_ rect: CGRect) {
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
}
override func awakeFromNib() {
super.awakeFromNib()
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
}
}
然而,當有人點擊文本字段裏面,我想更新的文本框的邊框,使其綠色。有沒有一種有效的方法來做到這一點?我試圖分配一個函數,只要有人在我的主視圖控制器中的文本框內觸摸,但它似乎沒有工作。
是否有更好的方法比啓用觸摸?我寧願在用戶在文本框中輸入時使用,因爲我不想讓動畫在一次觸摸後消失 – codeislife
啊,我明白了你現在要做的事情。你應該看看「追趕」響應者。所以當這個uitextfield「BECOMES FIRST RESPONDER」就是你想要設置新顏色的時候。然後當它「RESIGN BEING FIRST RESPONDER」可以返回到舊的顏色。這是你正在尋找的東西,但這與觸摸無關。 https://stackoverflow.com/questions/7022180/how-to-know-when-uitextview-became-first-responder – Pochi
只實現與2種方法我在說明書的末尾添加的委託。@ codeislife – Pochi