電子書籍の厳選無料作品が豊富!

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

A 回答 (5件)

> ボタンなどは使わないで実現したいです。



なぜボタンじゃダメなんでしょう?おっしゃるようなインターフェイスの構成を求められたら、10人中9人はボタンを使うと思いますよ。
理由1:アクションメソッドを実装できる。それがボタンの目的ですからね。
理由2:デフォルト、ハイライト(ボタンをタップした状態)、セレクトの3種類の画像を実装できる。画像をプログラムで切り替えるには最適。

ボタンの区別は、UIViewのプロパティである「tag」を使い、ボタンごと異なるtagの値にしておけば、tagによって、区別ができます。
「viewWithTag:」メソッドを使い、ボタンを特定できます。

ひょっとしって、ボタンの輪郭を消せない、画像をボタンに貼り付けられないと、誤解なさっていませんか?下図はUIButtonインスタンスのAttributed Pain。TypeをCustomにします。「State Config」を、Default、Highlighted、Selectedに切り替えて、べつべつの画像を指定できます。
「Xcodeのアプリケーション開発について」の回答画像2

この回答への補足

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

補足日時:2012/01/07 22:44
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/09 16:55

> わがままで申し訳ないのですが



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

この回答への補足

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

補足日時:2012/01/08 16:31
    • good
    • 0

> 前述のアプリを作る場合もボタン使用して作成可能ですか?



きょうは時間があったので、じっさいサンプルを作ってみました。こんな挙動でいいのですね?
いうまでもなくUIButtonで構成しています。

この回答への補足

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

補足日時:2012/01/08 15:28
    • good
    • 1

> また、今ボタンの色の変更はできたのですが一回変更したらもとに戻らないのはプログラムの方でループにかければ大丈夫ですかね?



ソースコードの現物を見なければ、アドバイスできません。

この回答への補足

そうですね。すみません。
ソースコードはXcodeのView-based applicationの初期状態です。
今は、IBしか変更していません。

前述のアプリを作る場合もボタン使用して作成可能ですか?

補足日時:2012/01/08 15:07
    • good
    • 0

IBで配置しているのならIB上でその画像 UIImageView か何かかな? をクラスから見える様にすれば良いよ。



http://www.atmarkit.co.jp/fsmart/articles/iphone …
この記事はiPhone用で古いxcodeでの説明だと思うけど考え方自体は変わらないからこういう記事を色々探してみたら良いよ。
(質問ではtouchと言ってるからmacじゃなくiOSだと思うけど)

基本はIBで配置したのと同じクラスを .h 側で適当な変数名で宣言するとIB側で結びつけられるようになるから
結びつけたら色々ソース側でやれば良い。
ImageView自体、IB側でプロパティをいじると onTouchup とかを拾える様になると思うからそれを使うかImageViewの親とかが表示される時にeventを埋め込むかどっちかかな。

この回答への補足

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

補足日時:2012/01/08 15:09
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/09 16:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!