私のUItextfieldのアニメーションを作成したいと思います。これを行うために、私はのUITextFieldのサブクラスを作成し、私はそこに私のコードを保存:Swift Animate Textfield
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"が新しい色を設定したいときです。その後、「最初の応答者であることを誓う」ときに、それを古い色に戻すことができます。これはあなたが探しているものですが、これはタッチとは関係ありません。 https://stackoverflow.com/questions/7022180/how-to-know-when-uitextview-became- first -responder – Pochi
説明の最後に追加した2つの方法でデリゲートを実装するだけです。@ codeislife – Pochi