調べたところ
if文の条件はbool型でtrueかfalseしかないということはわかったのですが
もしtrue(false)なら実行する ではなく
例えば
もしtrueがfalseになったら実行する という書き方はできますか?
それっぽく書くなら
swift
1 2func Z(z: Bool) { 3 if z == true -> false { 4 print("zはtrueからfalseになりました") 5 } 6}
といった具合でしょうか
補足
今回の質問では
例えば、スマホにタッチして指を離すという動作をした際に
スマホにタッチ→true
指を離す→false
のように、一連の流れが起こった際にif文を実行したいと考えております。
なので、hoshiさんのご意見を元に訂正すると
false(現在の値)→今回の値 { true(一時的に)→false(最終的に) } といった表現をしたいと考えております。
前回の値が true で、今回の値が false なら、という条件を書きたいなら、前回の値を何らかの形で記憶する必要があるかと。
なるほど。ありがとうございます。
今回の質問では
例えば、スマホにタッチして指を離すという動作をした際に
スマホにタッチ→true
指を離す→false
のように、一連の流れが起こった際にif文を実行したいと考えております。
なので、hoshiさんのご意見を元に訂正すると
false(現在の値)→今回の値 { true(一時的に)→false(最終的に) } といった表現をしたいと考えております。
スマホのどこにタッチしたことを検出したいかによりますが、普通のボタンタップなら touchUpInside イベント、その他の view へのタッチなら UITapGestureRecognizer を使いますね…。
なるほど…
画面へのタッチのつもりでしたが、そもそもスマホへのタッチの際にはそのように書くのですね
ありがとうございます。
ということは仮に、今回の質問がスマホと関係なかったとして
質問のようにif文を記述することはできないということでしょうか?
できますよ。というか、画面タッチでもやりたいことによっては自分でもっと細かくイベントに対応することもできます。
今回の質問に関しては、抽象的なレベルで答えるなら「できる」、具体的な答えが欲しいなら何をしたいのかをもっと具体的に書いて欲しい、ってことです。
なるほど!
ご丁寧にありがとうございます。
具体的に書きますと
現在、ほぼ初心者なのですがswiftでgooglemapAPIを用いたゲーム開発の補助をしています。
そこで、zoomlevelの取得が課題なのですが
ピンチアップやスクロールをした瞬間(画面に指が触れた瞬間)にzoomlevelを取得することはできたのですが
本当に欲しいzoomlevelはピンチアップした後(zoomlevelが変わった後)の数値になり
そこで、スマホから指を離した瞬間にzoomlevelを取得するコードを書きたいのです。
それで、if文で質問のようにコードが書ければそれが叶うのではないかと思って調べたのですが
ヒットしなかった為に質問をしました。
なるほど、その場合は Google Maps SDK の作りによりますね。これによれば、idleAt でてきるかも。
https://stackoverflow.com/questions/41394563/touch-end-event-on-googlemap-ios-swift
試してみます!!!
ご丁寧にありがとうございます!!
idleATで解決しました!!!!
めっちゃ長い時間悩んでたので、本当に嬉しいです
ありがとうございました!!!
ここだとベストアンサーにできないので、よかったら回答の方に一言お願いします!
(if文の件ではありませんが、そもそもの問題が解決したので本当に感謝です。)
回答1件
あなたの回答
tips
プレビュー