[Swift] ストーリーボード上でプロパティ指定可能なUIパーツの作り方(UITextField拡張)
概要
フォーカス時に背景色が変わるUITextFieldを作ってみました。
背景色はストーリーボードで指定できるようにしています。
動作イメージ
開発環境
Xcode7.3
コード
1. UITextField拡張クラスの作成
UITextFieldを継承したクラスを作成します。
import UIKit
@IBDesignable
class UITextFieldCustom: UITextField, UITextFieldDelegate {
@IBInspectable var focusBkColor: UIColor?
private var defaultBkColor: UIColor?
func textFieldDidBeginEditing(textField: UITextField) {
if focusBkColor == nil {
print("Error: Set focusBkColor")
return
}
defaultBkColor = self.backgroundColor
self.backgroundColor = focusBkColor
}
func textFieldDidEndEditing(textField: UITextField) {
self.backgroundColor = defaultBkColor
}
}
2. ストーリーボード
UITextFieldを配置し、Identity InspectorのClassに上記UITextField拡張クラスを指定します。
UITextField拡張クラスのコードに@IBInspectable var focusBkColor: UIColor?
の記述をすることで、Attribute InspectorにFocus Bk Colorというプロパティが出現します。
このプロパティにて、フォーカス時の背景色を指定できるようにしてみました。
3. ViewController
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textFieldCustom1: UITextFieldCustom!
@IBOutlet weak var textFieldCustom2: UITextFieldCustom!
@IBOutlet weak var textFieldCustom3: UITextFieldCustom!
override func viewDidLoad() {
super.viewDidLoad()
textFieldCustom1.delegate = textFieldCustom1
textFieldCustom2.delegate = textFieldCustom2
textFieldCustom3.delegate = textFieldCustom3
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
ソースファル
Author And Source
この問題について([Swift] ストーリーボード上でプロパティ指定可能なUIパーツの作り方(UITextField拡張)), 我々は、より多くの情報をここで見つけました https://qiita.com/y-some/items/aaeccc787ac61a89aa5c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .