未分類

TextViewにPlaceholderを追加する簡単な方法

投稿日:

TextViewはTextFieldのようにPlaceholderを設定できないため、自分で実装する必要がある。

ここでは、TextViewの上にLabelを設置し、TextViewの入力判定を行い、入力された時は非表示にする方法でPlaceholderを作成する。

また入力判定にはUITextViewDelegateのデリゲートメソッドを使う。

1. StoryBoardでTextViewの上にLabelを設置する。

TextViewの上にLabelを設置して、textを「メモ」に設定し、色をグレーにした。


2. UITextViewDelegateプロトコルと、デリゲートを設定

プロトコル追加↓

class ViewController: UIViewController,UITextViewDelegate{

デリゲート設定↓(※IBOutletでtextViewやLabelを繋ぐのを忘れずに)

textView.delegate = self

3.textViewDidChange()メソッドで入力判定しラベルの表示/非表示を設定

//テキストが書き換えられるたびに呼ばれる
   func textViewDidChange(_ textView: UITextView) {
    //テキスト未入力の場合のみLabelを表示する
    memoLabel.isHidden = textView.text.isEmpty ? false : true
    }

テキストを入力するとラベルが非表示となる↓

参考:UITextViewにてPlaceholderを実装する
[Swift 4.2] UITextViewにプレースホルダーを追加する[iOS 12]

-未分類

執筆者:

関連記事

no image

APIとは

APIとは、自分がソフトウェアの一部を公開して、他のソフトウェアと機能を共有できるようにしたもの。 こんなイメージ: 企業<うちのサイトの機能の一部を使ってもいいよ。機能を取得するための仕様書を用意し …

no image

collectionViewCellにラベルを設置する2つの方法

collectionViewCellの中にLabelを配置したい。 1. StoryBoardで設置する方法 新たなファイルを作らず簡単に設置できる。 cell内にLabel配置→Tagを1にする→コ …

no image

他ファイルの変数を使う

ViewControllerで宣言した変数を、NextViewControllewで使う方法。 let test = “テスト” let viewController = ViewController …

no image

CGColorをRGBで指定する方法

uiViewの色指定はUIColorでなく、CGColorになってる。 CGColorをUIColorと同じやり方でRGB指定するとエラーが出る。 一度定数化してから、入れたら解決した。 let cu …

AEのデフェルトでよく使うエフェクト

よく使うエフェクト ・カラー補正(色の調整):輝度コントラスト、自然な彩度、色相、CCトナー、レベル補正 ・スタイライズ(画像加工でなんかいい感じにする。):全部、CCプラスティック、グロー、モザイク …