Как проверить идентификатор объекта, к которому прикоснулись (iOS)
В моем виде у меня есть массив с кучей разных точек, затем я запускаю этот массив через цикл, чтобы создать группу разных квадратов в виде. Вы также можете видеть, что я пытался использовать идентификатор доступности для создания идентификатора системы. Это, наверное, очень плохая практика, но у меня кончились идеи, ха-ха. Вот мнение:
#import "LevelOneView.h"
@implementation LevelOneView
@synthesize squareLocations;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
- (void)drawRect:(CGRect)rect
{
squareLocations = [[NSMutableArray alloc] init];
CGPoint dotOne = CGPointMake(1, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotOne]];
CGPoint dotTwo = CGPointMake(23, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotTwo]];
CGPoint dotThree = CGPointMake(45, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotThree]];
CGPoint dotFour = CGPointMake(67, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotFour]];
CGPoint dotFive = CGPointMake(89, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotFive]];
CGPoint dotSix = CGPointMake(111, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotSix]];
CGPoint dotSeven = CGPointMake(133, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotSeven]];
CGPoint dotEight = CGPointMake(155, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotEight]];
CGPoint dotNine = CGPointMake(177, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotNine]];
CGPoint dotTen = CGPointMake(199, 25);
[squareLocations addObject:[NSValue valueWithCGPoint:dotTen]];
int numby = [squareLocations count];
for (int i = 0; i < numby; i++)
{
NSValue *pointLocation = [squareLocations objectAtIndex:i];
CGPoint tmpPoint = [pointLocation CGPointValue];
UIImage *theSquare = [UIImage imageNamed:@"square.png"];
NSString *myID = [NSString stringWithFormat:@"%d", i];
[theSquare setAccessibilityLabel:myID];
[theSquare drawInRect:CGRectMake(tmpPoint.x, tmpPoint.y, theSquare.size.width, theSquare.size.height)];
}
}
@end
Итак, моя цель состоит в том, чтобы иметь возможность сказать, какой квадрат был сдвинут, когда он сдвинут! Поэтому я ищу систему, похожую на ID, чтобы я мог проверить текущее скольжение по «ID» объекта и решить, что с ним делать. Я попытался написать что-то подобное в контроллере представления:
#import "LevelOneController.h"
@interface LevelOneController ()
@end
@implementation LevelOneController
@synthesize whereStuffActuallyHappens;
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"View loaded");
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self.view];
for (UIView *view in self.view.subviews)
{
if ([touch.accessibilityLabel isEqual: @"1"] && CGRectContainsPoint(view.frame, touchLocation))
{
[view removeFromSuperview];
}
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Еще раз вы видите, что я пытаюсь использовать метку доступности в этом случае ... ха-ха. У кого-нибудь есть идеи, как этого добиться? Есть ли способ, которым я мог бы дать каждому квадрату идентификатор, а затем проверить идентификатор этого квадрата, когда он скользит? Спасибо!