かいちの備忘録と開発記録

プログラミング初心者が覚えたことを書いていくブログです。

Swift:UITextFieldがタッチされたことの検出

touch down insideじゃできない!

この前、テキストフィールドがタップされた時に「完了」ボタンを表示するというプログラムを書いていたのですが、storyboardで@IBAction func test() {}とかで書いたやつとの関連付けをする時にtouch up insideを選択したらダメでした。

どうする?

touch up insideをtouch downに変えたらできました。でもこれだとタッチしたあとそのまま指を離さないで、指をちょっと下に移動してから画面から話すとキーボードは表示されないのに完了ボタンが出てきてしまうということが分かりました。

どうすればいいんでしょうかね...?

今は外出中なのであとで調べてみたいと思います。

本当はtouch up insideでできた可能性もあるかもしれませんね。

Swift:部品の無効化

昨日友人とiOS開発でSwiftでのコードでの画面遷移とか部品の無効化について話してました。その中でも部品の無効化について話していこうかと思います。

普通のやり方は?

部品の無効化をするときはこんな感じに書きます。

無効化すると部品の色がちょっと薄くなりますね。(あと灰色になる?)

// 部品の宣言
@IBOutlet var button: UIButton!

// 無効化
button.enabled = false

// 有効化
button.enabled = true

buttonは変数名なので好きに変えて使ってください。ボタン以外での部品でもできる物もあります。

ちなみにこういうこともできます。

// 部品を消したいとき
button.hidden = true

// 消した部品を出す
button.hidden = false

しかし...

しかし友人がこんなことを言ってきました。

色のボタンやってみて

四角い

背景色を設定したボタンのことですね。

確かにこれは無効化させれば押すことはできないのでそれは良いのですが、灰色にになったりはしないので無効化されたことがわかりにくいですね。

これは背景色を灰色にすればわかりやすいかもしれませんね。

// 背景色を灰色にする
button.backgroundColor = UIColor.grayColor()

これでできます。ありがとうございました。

こんにちは

こんにちは。かいちです。

現在趣味でプログラミングをしているのですが、覚えたことを忘れないようにしたいのと、今までどんなことをしてきたか記録しておきたいのでブログを書きたいと思いました。

今までちゃんと学んだのはJavaとかSwiftですね。

ただし、完全初心者ですので、情報は正しいとも限りませんし、初歩的なことばっかり書いてると思います。

それでは、よろしくお願いします。