画像の場所を指定した中でランダムにしたい。Serviceを読んで理解し、同意したものとみなします。画像の場所を指定した中でランダムにしたい。1,611件-4質問の内容がわかりずらくてゴメンなさい。計16個の画像を配置してあります。15こは同じ画像なのですが1つ違う画像にしてあります。その違う1つをタッチするたびに違う場所に出現させたいのですがやり方がわかりません。ランダムに再配置するやり方がわかりませんtouchesBeganの所になんと書けばいいのでしょうか?コードは以下のとうりです見よう見まねでやったので雑でゴメンなさい。個の銅バッジ7どこまでわかっていてどこからわからないのか(タッチの検出方法がわからないのか、タッチの検出方法はわかっているけど画像の再配置方法がわからないのか)追記する必要があると思います。どのようにして画像を配置しているか(UIImgeViewで画像を配置しているのか、別のカスタムViewを使っているのか、storyboardで配置しているのか、コードでビューを生成して配置しているのか)も追記すべきだと思います。初心者で何かWebサイトの情報をみようみまねでやっているなら、参考にしているURLも記述すると、より具体的なアドバイスを得られやすいと思います。票4アプリのグラフィックな部分の開発の、ひとつのテクニック、というかひとつの心得として、できるだけ構成を単純化するということが挙げられると思います。今回の件では、同じ画像15個+異なる画像1個という16個で構成をするから、処理が複雑化しているといえます。・同じ画像(UIImage)のUIImageViewインスタンス16個、A01〜A16・異なる画像のUIImageViewインスタンス1個、Bこのように17個で構成すれば、とたんに単純化されます。A01〜A16は、格子状に配置して、終始固定したままにできます。A01〜A16の任意のインスタンスの上に、Bを重ねて配置すれば、当初想定した外見になります。あとは、ランダムにBの位置を移動するだけです。ひとつの心得を挙げさせてもらうならば、それはアプリのふるまいを、漠然とひとつのふるまいとイメージするのではなく、ひとつひとつの小さなパーツの組み合わせとしてイメージすることです。・UIImageViewインスタンスBのタッチをトリガー(引き金)にしてイベントを起こす。・UIImageViewインスタンスBの位置を、プログラムで移動する(変更する)。・UIImageViewインスタンスBのとることができる位置(A01〜A16の位置)を、配列として保持する。・ランダムに0〜15(まあ、1〜16でもかまいませんが)を返す関数を用意する。このくらいのパーツに分けてみるといいんじゃないでしょうか?そして、個々のパーツについて、じぶんの知っている範囲、経験のある範囲でプログラムにできるかを検証して、無理なら、そのパーツについて、絞った質問をするよう、心がけるといいでしょう。以上の方針に沿ったサンプルコードを掲載しておきます。Applicationのプロジェクトを新規作成します。上のふたつの画像を、プロジェクトに追加します。ViewController.swiftを下のように編集します。要素数16、CGPointの配列を用意する。base16.pngをviewに貼り付け。heartViewをランダムな位置にする。}}上のコードには、頼まれていない処理が付加されています。ランダムにheartViewの位置を変更すると、16分の1の確率で、移動前と同じ位置に移動する、すなわち見た目移動しない結果になります。それはかっこよくないので、かならず現在位置から移動するようにしたいものです。その処理を付加しています。|3全てコードで配置しております。再配置のやり方がわかりません全てコードで配置しているなら、最初に16個の画像を配置する時に、UIImageViewのframeプロパティで表示位置を座標指定しているはずです。再配置するには、そのframeプロパティを変更してUIImageViewの表示位置を変更すればよいだけです。これはビューを表示する際の基本中の基本の当たり前のことしか回答していないので、あなたがわからないと思っているポイントは別のところにあるのではないかと思います。補足を求めても、たった2言しか補足できないということは、たぶんなにがわからないのか(何をどう聞いたらいいのか)自分でうまく説明できない状態なんだろうと思います。全てコードで配置しているなら、そのコードを全部質問に記載すれば、あなたがなにがわからないのか瞬時に理解し、具体的で適切なアドバイスを与えてくれる人がここにはいると思います。(2015/8/24追記)コードを貼ってもらったので、そのコードをベースにアドバイスしたいと思いますが、touchesBeganの中身がほとんど何も書かれてないということは、たぶんどんな手順で処理したらいいのかすらさっぱりわからないのだと思います。その概略手順がわかったら今度は各手順の細かい処理方法に疑問が出てくると思うので、とりあえず現在のコードをベースに、こう追記したら動くというサンプルを書いてみました。設計方針としては、UIImageViewを再配置するのではなく、各UIImageViewに設定している表示イメージ(UIImage)を更新することにしました。現在のコードをベースにするならこの方が簡単だと思います。ViewControllerのプロパティに以下の2つを追記します。touchesBeganの中でどちらの画像が設定されているか判断できるようにするためです。次に、viewDidLoadの最後に以下を追記します。16このあたりは、本来はUIImageViewを配列に入れる設計にすべきです。すればfor文でもっとすっきりと簡潔にコーディングできます。元のコードをいろいろ直すのが面倒なので、この回答ではタグを使いました。配列を使うならタグ番号を使う必要はなく、替わりに配列の添え字番号を使って全体としてもっとすっきりと簡潔になると思います。myImageX}これで質問にあった動作はできると思います。ソースにコメントを入れておいたので、どんな手順でどんなことをしているか理解してください。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。(2019年)2020:あけましておめでとうございます!関連する質問1spritekitでのノードのランダムな動き1storyboardの遷移でエラーが出ます。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。