• ベストアンサー

Xcodeのアプリケーション開発についてです

今Xcodeでアプリの開発をしている初心者です。 Objective-Cに苦戦しています。 簡単な動作でIBで配置した画像をタッチしたら別の画像に変わるようにしたいのですが可能でしょうか?ボタンなどは使わないで実現したいです。 分かりやすく教えてくださったらありがたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

> ボタンなどは使わないで実現したいです。 なぜボタンじゃダメなんでしょう?おっしゃるようなインターフェイスの構成を求められたら、10人中9人はボタンを使うと思いますよ。 理由1:アクションメソッドを実装できる。それがボタンの目的ですからね。 理由2:デフォルト、ハイライト(ボタンをタップした状態)、セレクトの3種類の画像を実装できる。画像をプログラムで切り替えるには最適。 ボタンの区別は、UIViewのプロパティである「tag」を使い、ボタンごと異なるtagの値にしておけば、tagによって、区別ができます。 「viewWithTag:」メソッドを使い、ボタンを特定できます。 ひょっとしって、ボタンの輪郭を消せない、画像をボタンに貼り付けられないと、誤解なさっていませんか?下図はUIButtonインスタンスのAttributed Pain。TypeをCustomにします。「State Config」を、Default、Highlighted、Selectedに切り替えて、べつべつの画像を指定できます。

skkds
質問者

お礼

ありがとうございました。 最初から最後まで本当に助かりました。 今作成中でまた壁にぶつかっています。勉強が足りないと言われるかもしれませんが、また機会があればご指導ご鞭撻の程よろしくお願いします。

skkds
質問者

補足

丁寧な回答ありがとうございます。 ボタンでもできそうな気がしてきました... 「何故ボタンを使わないのか」とのことですが、 作成したいアプリが9個のマス(ボタン)を作り、そのどれかがランダムで色が変わり、色が変わったマスを押すとそのマスは普通の色に戻り、他のどれかのマスが色が変わるというゲームのようなものです。 ボタンを使って考えてできなかったのでボタン以外で考えていました。 このアプリを作成するアドバイス等ありましたら図々しいですがよろしくお願いします。 また、今ボタンの色の変更はできたのですが一回変更したらもとに戻らないのはプログラムの方でループにかければ大丈夫ですかね?

その他の回答 (4)

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.5

> わがままで申し訳ないのですが わがままですね。 手順すら思いつかないというのは、まったく基礎ができていないということですよ。勉強してない人を手助けする気はありません。あしからず。 せめて、UIButtonのリファレンスをみて、どういうメソッド、どういうプロパティがあるのか、そして上位クラスのUIControl、UIView、UIResponderのリファレンスを調べるということくらいは、なさってもいいのではありませんか?

skkds
質問者

補足

的確な指導&アドバイスありがとうございます。 今、ボタンを使って作成している途中で少し前に進むことができました。できるということを示していただいたのでがんばろうと思います。

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.4

> 前述のアプリを作る場合もボタン使用して作成可能ですか? きょうは時間があったので、じっさいサンプルを作ってみました。こんな挙動でいいのですね? いうまでもなくUIButtonで構成しています。

skkds
質問者

補足

…まさに作りたいものです(^^;) よかったら手順を教えていただけますか? わがままで申し訳ないのですが今はプログラムをもらうのではなくある程度自分でつくってみたいと思っています。 度々解答ありがとうございます。

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.3

> また、今ボタンの色の変更はできたのですが一回変更したらもとに戻らないのはプログラムの方でループにかければ大丈夫ですかね? ソースコードの現物を見なければ、アドバイスできません。

skkds
質問者

補足

そうですね。すみません。 ソースコードはXcodeのView-based applicationの初期状態です。 今は、IBしか変更していません。 前述のアプリを作る場合もボタン使用して作成可能ですか?

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

IBで配置しているのならIB上でその画像 UIImageView か何かかな? をクラスから見える様にすれば良いよ。 http://www.atmarkit.co.jp/fsmart/articles/iphonesdk02/01.html この記事はiPhone用で古いxcodeでの説明だと思うけど考え方自体は変わらないからこういう記事を色々探してみたら良いよ。 (質問ではtouchと言ってるからmacじゃなくiOSだと思うけど) 基本はIBで配置したのと同じクラスを .h 側で適当な変数名で宣言するとIB側で結びつけられるようになるから 結びつけたら色々ソース側でやれば良い。 ImageView自体、IB側でプロパティをいじると onTouchup とかを拾える様になると思うからそれを使うかImageViewの親とかが表示される時にeventを埋め込むかどっちかかな。

skkds
質問者

お礼

ありがとうございました。とても助かりました。

skkds
質問者

補足

ありがとうございます。 その方法でプログラムに認識できました。 Ano.3で作成したいアプリの概要を示しているのですが アドバイス等ありましたらよろしくお願いします。

関連するQ&A