2017-05-12 5 views
0

私はUIImageとTextFieldを持っています。ユーザーがTextFieldで書き込みを開始するとImageが表示され、TextFieldで書き込みが完了したときにUIImageは非表示にする必要があります。 どうすればいいですか?私が試した何私たちが編集を開始したときにのみ画像を表示する

は次のとおりです。

func textFieldDidBeginEditing(_ textField: UITextField) { 
    heartImg.isHidden = false 
} 

func textFieldDidEndEditing(_ textField: UITextField) { 
    heartImg.isHidden = true 
} 
+0

使用のTextFieldデリゲートメソッドとしてそのテキストフィールドleftViewModeを設定し、 –

+3

を非表示にしたり、表示したいとき、それをあなたの条件を使用し検索しましたか? –

+0

私は、次の試したんでした:{ heartImg.isHidden =真 } –

答えて

0

あなたは、特定のデリゲートメソッドのための通知を受けることができますここで、UITextFieldのデリゲートを設定することができますあなたの場合は https://developer.apple.com/reference/uikit/uitextfielddelegate

、それは次のようになります。

func textFieldDidBeginEditing(_ textField: UITextField) 

https://developer.apple.com/reference/uikit/uitextfielddelegate/1619590-textfielddidbeginediting

この関数をデリゲートのクラスで実装すると、このメソッド内で画像を表示/非表示に設定できるようになりました。

あなたは "エンド・編集" にもそれを隠すことができます。

func textFieldDidEndEditing(_ textField: UITextField) 

https://developer.apple.com/reference/uikit/uitextfielddelegate/1619591-textfielddidendediting

1

はrightView/leftview

textField.rightViewMode = .unlessEditing 
textField.leftView = UIImageView(image: UIImage(named: "textfield_edit_icon.png")) 
でこの

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
    textField.background = UIImage(named: "focus.png") 
    return true 
} 

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { 
    textField.background = UIImage(named: "nofocus.png") 
    return true 
} 

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    return true 
} 

OR設定された画像をお試しください210

0

これを試してください。

TextFieldにleftViewとしてイメージビューを追加します。あなたも

そして.whileEditing

let LeftView = UIImageView(image: UIImage(named: "yourImage") 
    yourTextfield.leftView = LeftView 
    yourTextfield.leftViewMode = .whileEditing 
関連する問題