〜前回のあらすじ〜
三角形のボタンが、思ったようにクリックできない問題が発生しました。

困ったー。まだそんな応用力ないのに。どうしましょう。
ということで、本日はその辺りをなんとか工夫してみようと思います。

ぼんやりわかってきた問題点はこんな感じ。

① ボタンは矩形自体ではなく、矩形のフレームに反応している
② フレームは、(おそらく)四角形にしか設定できない模様
③ ZStackで重ねてしまうと、下のフレームはクリックできない

「……②の時点で積んでないかニャ?」

確かに。

そもそも三角形のボタンを大量に並べようとか、そういう斜めの発想が良くなかったのかもしれません。
「あこがれと現実は違うのよ」とやんわりと諭されている気がしてきました。

よしっと。まあ前向きに行きましょう。
失敗しても怒られないのが趣味開発の良いところです。

ここで私が取り得る選択肢は、以下の2つです。

・ボタンを諦めて、クリックされた座標で処理を行うよう方向転換
・四角形のフレームをなんとか工夫して、ボタンの重なりをなくす

「座標」で処理するのが正しい選択肢のような気がします。気がしますが。
それはなんとなく、以降の選択肢を減らしてしまうような気もします。

ということで、「重なりをなくす」方向に決定。

幸いフレームをはみ出しても矩形の描画は可能でしたので、三角形の中央部分に縦長のフレームを配置するようにコードを書き換えてみました。

……するとどうでしょう?

人間という生き物(主に私)は、三角形をクリックする場合、真ん中の辺りをクリックしようとするので、思ったほど違和感を感じないのです。ZStack側との重なりもなくなったので、すべての三角形(実質長方形)をクリックすることができるようになりました。おおー、これは素晴らしい!

と、自分に言い聞かせ。一旦この形で進めてみることにします。

次回は気分転換に「画面全体の見た目」を良くしてみましょう。


Apple Developer Documentation
Instance Method > frame
Positions this view within an invisible frame with the specified size.
外部リンクを開く