- ベストアンサー
objectiv-cでカメラロールから画像を表示させる方法
- objectiv-c初心者の方がカメラロールから画像を選択し表示させる方法について質問しています。
- 配列に格納されているUIImageオブジェクトを取り出し、UIImageViewに表示させるためのコードの一部に問題があるようです。
- おそらく「initWithImage:」の引数の値が正しく指定されていないことが原因だと思われます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 「initWithImage:配列の番号」のところがおかしいのでしょうか? この通り「配列の番号」と漢字で書いているのだったら 正しいわけありません。 実際にはなにか英数字でコーディングしているのだと 思いますが、その内容がどんなものかを説明しないと それがおかしいかどうか分かるわけありません。 が、それ以前の部分もあきらかにおかしいので その点を指摘しておきます。 まず、UIImageクラスにinitWithImageというメソッドはありません。 そもそもNSArrayの配列には既にUIImageオブジェクトが入っていますから、 それをimageView.imageに設定すればいいだけです。 例えば、画像が入っている配列を「NSArray *imageArray;」とし 表示したい画像の配列番号を「NSInteger imageNumber;」とするなら imageView.image = imageArray[imageNumber]; とするだけでよいと思います。 あと、imageViewをプロパティで定義したのなら、 もしかするとimageViewじゃなくて_imageViewとする必要が あるかもしれませんが、imageViewをどう定義しているのか ちゃんと書いてないのではっきりわかりません。 状況の説明も「表示させようとしているのですが、表示できません」 と書いていますが、このコーディングだと、実行する以前に ビルドエラーでエラー箇所が赤く表示されているはずです。 普通はそのメッセージ内容を見て何が悪いか考えます。 そのメッセージの意味がわからないなら、正確なメッセージ内容を ちゃんと質問に記載して質問すべきです。 そして、コーディングもできるだけそのまま記載し、 記載できないところを補足すべきです。 > 0x7fbbdae8d690などの文字列はカメラロールの画像へのパスですか? これは、画像へのパスじゃなくて、UIImageクラスオブジェクトの アドレスです。意味もわからず質問に書いたのかもしれませんが、 これによって、配列にUIImageクラスのオブジェクトが入っている ということがはっきりわかります。これがあったから imageView.image = imageArray[imageNumber]; とするだけでよいというアドバイスになりました。
お礼
分かりにくい質問で失礼しました。そんな質問にもきちんと回答をくださりありがとうございました。0x7fbbdae8d690などがUIImageクラスオブジェクトであることがわかり、ご指摘のように imageView.image = imageArray[imageNumber]; imageViewのimageメソッドで配列の中身をセットすれば、画像が表示されました。ありがとうございました。また、よろしくお願いします。