私はNSArraywhit15UIImageViewsを持っています:
@interface ViewController : UIViewController{
NSArray *ArrayImages1;
NSArray *ArrayImages2;
}
viewDidLoadで:
ArrayImages1 = [[NSArray alloc] initWithObjects: a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, nil];
ここで、a1、a2 ...はUIImageViewsのアウトレットであり、ArrayImages2についても同じです。
TouchesBeganとTouchesMoved:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
UIImageView *posible;
int imagen;
if (point.x < 161) {
imagen = Contador1;
if (Contador1 > 14) {imagen = Contador1 - 15;}
imagen--;
posible = [ArrayImages1 objectAtIndex:imagen];
}
else if (point.x > 159) {
imagen = Contador2;
if (Contador2 > 14) {imagen = Contador2 - 15;}
imagen--;
posible = [ArrayImages2 objectAtIndex:imagen];
}
if ([touch view] != posible) { return; }
original2 = posible.center;
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
UIImageView *posible;
int imagen;
if (point.x < 161) {
imagen = Contador1;
if (Contador1 > 14) {imagen = Contador1 - 15;}
imagen--;
posible = [ArrayImages1 objectAtIndex:imagen];
}
else if (point.x > 159) {
imagen = Contador2;
if (Contador2 > 14) {imagen = Contador2 - 15;}
imagen--;
posible = [ArrayImages2 objectAtIndex:imagen];
}
if ([touch view] != posible) { return; }
posible.center = point;
}
タッチが2つの可能なUIImageViewのいずれかにあるかどうかを知る必要があり、ある場合は移動します。Contador1およびContador2intは、表示されているUIImageViewの数をカウントするカウンターであり、ユーザーはそれらの最後の2つのみを移動できます。
それは機能します、それは私が外に触れるとき、それはアプリをクラッシュさせます。touchesBeganとTouchesMovedを変更すると、「posible = [ArrayImage ..」のインデックスが0になり、最初のUIImageViewでのみ機能します(理由はわかります)が、クラッシュしません。
何か案は?