Objective-C:UITextFieldとUITextViewのカスタムクラス
【環境】Xcode8.0
規定では
UITextField:プレースホルダーあり
UITextView:プレースホルダーなし
という事で、
UITextViewに独自クラスを作ってプレースホルダーを実装しました。
さらにUITextFieldとUITextViewの見た目を統一するために
UITextFieldも独自クラスを作りました。
統一させたかった事
UITextFieldの独自クラスを作成
UITextFieldでは
枠線の幅・角丸・色を設定しています。
また、プレースホルダーの描画も設定しています。
プレースホルダーについては、
テキストのフォントサイズを17にしているので
同じくサイズを17にしています。
drawInRectで指定しているCGRectMake()では
Y座標はフォントサイズによって微調整が必要。
UITextViewの独自クラスを作成
UITextViewではUITextFieldと同じく
枠線の幅・角丸・色を設定しています。
あとは、入力したテキストの余白も設定しています。
プレースホルダーについては色々ごにょごにょとしています。
プレースホルダーについて参考にしたサイトはこちら
▼ UITextView で Placeholder を使う
UITextView で Placeholder を使う - xykのブログ
プレースホルダーもフォントサイズによって
CGRectMake()で位置を微調整しています。
Main.storyboardを編集
UITextFieldとUITextViewを各1つずつ設置
ポイント
独自のVIewクラスを使う時は
各部品のCustom ClassのClassに作成したクラスを指定します。
TextFieldの場合
TextViewの場合
ViewControllerクラスを編集
ヘッダークラスは特に何もしていません。
メソッドクラスでは作成したクラス(UICustomTextField1とUICustomTextView1)を
インポートして実装しています。