1

我正在寻找一些示例代码来使用 CFDictionary 跟踪 UITouches。不幸的是,apple-docs 没有完整的示例。

http://developer.apple.com/library/IOs/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html#//apple_ref/doc/uid/TP40009541-CH3-SW7

我目前正在使用 NSMutable 数组,但我想存储完整的 UITouch 对象,以便获取时间戳。

NSMutableArray *touchArray_val;


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    touchArray_val = [[NSMutableArray alloc] init];             
}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 

     for(UITouch *t in touches){
         CGPoint currentPoint = [t locationInView:self];
         [touchArray_val addObject:[NSValue valueWithCGPoint: currentPoint]];    
     }

}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{        
    NSLog(@"%i",[touchArray count]);

    for(NSValue *val in touchArray_val){        
        NSLog(@"%@",val);      
    }
}
4

1 回答 1

1

UITouch 的指针在触摸的整个生命周期内不会改变。您可以从指针创建一个 NSValue。

 // NSMutableDictionary * touchLookup; set up somewhere else...
 NSValue * key = [NSValue valueWithPointer:touch];
 [touchLookup setObject:touch forKey:key];
于 2012-09-24T19:21:55.117 回答