在这里,问题不过是我对objectiveC
了解不多。因此,查询是我正在开发一个项目,用户点击图片,UITapGestureRecognizer
我必须在我的array
中存储该点击位置。我不知道每次用户点击view
和CGPoint
值时,如何将其存储在NSMutableArray
中。如果我知道的话,我会非常高兴。
dataArray = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < [getResults count]; i++) {
[dataArray addObject:tappedPoint];
NSLog(@"RESULT TEST %@", dataArray);
}
我试过这段代码。但是在for循环的语法中,如何设置计数。还有一个问题是只存储最后一个对象。
答案 0 :(得分:1)
您需要创建UIView
的子类并实现方法- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
以获得触摸回调。其次,触摸位置(CGPoint
)无法添加到NSMutableArray
,但它的包装类可以(NSValue
)。这将是你想要的非常基本的实现。
// in UIView subclass
// Precondition: you have an NSMutableArray named `someMutableArray'
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint touchLocation = [[touches anyObject] locationInView:self];
NSValue *wrapper = [NSValue valueWithCGPoint:touchLocation];
[someMutableArray addObject:wrapper];
}
如果您想稍后循环浏览这些触摸位置,您只需快速枚举数组并打开NSValue
。
for (NSValue *wrapper in someMutableArray) {
CGPoint touchLocation = [wrapper CGPointValue];
}