-1

これを行う方法がわかりません:

ImageView があり、ImageView に表示するボタンをクリックして、最初の画像を表示します。最初の画像を数秒待ってから、2 番目の画像を見つける while ループを実行します (他の多くの while ループの指示に従ってください)。画像)、選択した (2 番目の) 画像を表示します。

私の問題を非常に明確に説明したかどうかわからないので、サンプルコードを次に示します。

- (IBAction)button:(id)sender {
  i=0;
  UIImage *img = [UIImage imageNamed:@"image1.png"];
                 [first setImage:img];
  /*some code which sets the time the image1 stay shown*/
  while (i<some_variable) {
  /*blah blah blah*/
  if (something) {UIImage *img = [UIImage imageNamed:@"image2.png"];
                 [first setImage:img];}
  if (something else) {UIImage *img = [UIImage imageNamed:@"image3.png"];
                 [first setImage:img];}
  ...
  /*code code code*/
  i++;
  }

}

これは私の問題を解決していません:

[NSThread sleepForTimeInterval:1.0];

空白になるのを待ってからコードを処理し、選択した画像を表示します。

これは非常に基本的なことであり、私にはアイデアが思い浮かびません。

4

1 に答える 1

0

これは私の問題を解決しました:

- (IBAction)button:(id)sender {

  UIImage *img = [UIImage imageNamed:@"image1.png"];
                 [first setImage:img];

  double delayInSeconds = 1.0; //set delay time
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
  i=0;
  while (i<some_variable) {
  /*blah blah blah*/
  if (something) {UIImage *img = [UIImage imageNamed:@"image2.png"];
                 [first setImage:img];}
  if (something else) {UIImage *img = [UIImage imageNamed:@"image3.png"];
                 [first setImage:img];}
  ...
  /*code code code*/
  i++;
  }
  });
}
于 2013-10-06T17:28:58.137 に答える