Я работаю над новой игрой, где вы будете перемещать изображение вокруг.UITouch с пользовательским UIView не работает
Я создал свой собственный UIView, UIPuzzle, в котором я использовал UIImageView
и некоторое значение. Затем я создал новый класс UIPuzzleView
, в котором я создал таблицу из UIPuzzle
(UIPuzzle tab[16];
)
Я добавил его на главном экране и работает отлично (я пытался оживить все из них). Но затем я хочу использовать -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
, чтобы проверить, какой из UIPuzzle
был нажат.
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch* touch = [touches anyObject];
int i = [self getTouchedView:[touch view]]; // this function returns me what UIPuzzle was clicked
if(i != NAN){
NSLog(@"%i", i);
}
}
-(int) getTouchedView:(UIView*)touch{
for(int i = 0 ; i < 4*4 ; i ++)
if(touch == gread[i])
return i;
return NAN;
}
Вот функция, которая добавляет UIPuzzle
по мнению
-(void)initGread{
int value = 0;
for(int i = 0 ; i < 4 ; i ++){
for(int j = 0 ; j < 4 ; j ++, value ++){
// setting size and pozition of single UIPuzzle
gread[value] = [[UIPuzzle alloc] initWithFrame:CGRectMake(j*70 + 70, i*70 + 70, 120, 120)];
// setting picture and value to UIPuzzle
[gread[value] setValue:value picture:[UIImage imageNamed:@"549823.jpg"]];
// adding UIPuzzle to View
[self addSubview:gread[value]];
}
}
}
Это должно работать, но это не так. Он возвращает некоторое случайное число, но только на gread[0]
, gread[1]
, gread[4]
, gread[5]
.
я использовал getTouchedView, чтобы получить то, что жадность была нажата, поскольку значения и изображения будут меняться. Но tnx для помощи я попытаюсь использовать его. – poppytop