アプリで働いていて、ここで利用可能な質問を勉強していましたが、私の問題を解決するのに似たようなものを見つけることはできません。xcodeのUIImageの複数の画像の間で変更する
私は4つの画像で配列を設定していますが、画像が連続してタッチされるたびに、別の画像に変更しようとしています。
例えば:image1の "タッチ" =>画像2 "タッチ" =>画像3 "タッチ" のimage4 "タッチ" =>画像1 .....
"感動" しない限り、画像は変更されません。私は成功し、次のコードを持つ2枚の画像間で変更することができるよ、その後
imageView.image = [imageArray objectAtIndex:0];
:私は、次の最初の画像を表示
-(void) viewDidLoad {
imageArray = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"image1.png"],
[UIImage imageNamed:@"image2.png"],
[UIImage imageNamed:@"image3.png"],
[UIImage imageNamed:@"image4.png"],
nil];
:
私の配列が設定通りであります:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
NSLog(@"'Touches Began");
if ([touch view] == imageView) {
imageView.image = [imageArray objectAtIndex:1];
NSLog(@"Image touched and changed");
}
私はimageViewの表示を2つ以上変更したいので、運を持つforループ内のステートメントがあれば:実行したとき
int touchCount = 0;
for (touchCount = 1; touchCount < 4; touchCount++) {
if ((touchCount < 4) && ([touch view] == imageView)) {
imageView.image = [imageArray objectAtIndex:touchCount];
NSLog(@"Touch Count = %d", touchCount);
}
}
、デバッガは「タッチカウント= 0」を示し、その後、ちょうどクラッシュやバックホーム画面に終了します。誰でもこの問題について助けてくれますか?私の考えは間違っていますか?
ときにそれをクラッシュ? – CristiC
あなたのforループは、クラッシュしていなければ、各画像を単純に連続して表示します。少数のイメージを回転させることは、ループ構造の呼び出しではありません。これは単に次の画像がどのように表示されるかを維持するだけです。あなたはそれを選ぶ乱数ジェネレータ、または他の何らかのアルゴリズムを持つことができます。あなたがコードで必要とするのは、次に表示されるイメージを決定し、そのイメージを渡すことです。 JRTurtonは、回転アルゴリズムに良い答えを与えます。 –