Objective-Cの書き方を教えて下さい。まず1つめの画像を表示し、3秒後に2つめの画像を表示したいです。


ViewControllerのコードを以下のような感じで書きました。
実行すると、画面が3秒間何も表示されず、その後2つめの画像が表示されました(涙)

- (void)viewDidLoad
{
[super viewDidLoad];

〜image0, image1を準備〜

imageView.image = image0;
[NSThread sleepForTimeInterval:3.0];
imageView.image = image1;
}

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/06/07 15:23:30
  • 終了:2012/06/12 15:52:35

ベストアンサー

id:gyoh_k No.1

gyoh_k回答回数12ベストアンサー獲得回数62012/06/07 15:48:47

ポイント100pt

おそらく、画面描画が行われるのがviewDidLoadメソッドの終了後なので、
viewDidLoadの途中でスリープしてしまうと画面描画がされないのだと思います。
performSelectorを使用するとうまくいくのではないでしょうか。

-(void)viewDidLoad
{
imageView.image = image0;
[self performSelector:@selector(showImage:) withObject:nil afterDelay:3.0];
}

-(void)showImage
{
imageView.image = image1;
}

他5件のコメントを見る
id:weed_7777

動きました!これは応用が効きそうなメソッドですね。ありがとうございます。

2012/06/07 17:55:51
id:gyoh_k

解決してよかったです。
これ、結構iPhone開発者が皆、一度はひっかかるところだと思います、多分。

2012/06/07 17:59:28
  • id:taknt
    [NSThread sleepForTimeInterval:3.0];
    imageView.image = image1;

    この2行が なかった場合は どうなりますか?
  • id:taknt
    または前の2行をなくすとか。

    imageView.image = image0;
    [NSThread sleepForTimeInterval:3.0];

    これを削除。

    もしかしたら image0 が 悪いのかもしれない。
    画像が 読めてないとか。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません