所以,我正在捕获多个触摸并确定每个触摸发生的数量和位置,并且我看到UIView UIViewController之间的行为不同。
基本上,事件处理程序编码如下:(在本例中为touchesEnded,但它确实无关紧要)。在View中发生的是,我得到了整个触摸的集合,但是在控制器中,我一次只能触摸一次,即从来没有触摸的集合,但是TouchesEnded会在每次触摸时执行在同一时刻。
我尽可能相同地添加子视图...... 有人'西班牙可以告诉我发生了什么事吗?为什么控制器版本没有给我收藏?
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
int total = 0;
for (UITouch *touch in touches)
{
for(UIView *myView in [contentView subviews])
{
if (CGRectContainsPoint([myView frame], [touch locationInView:self.view]))
total++; // this is always 1 for the UIViewController
// but I get the full number within the UIView version
}
}
}
答案 0 :(得分:0)
我怀疑你正在接触但是观点不同。检查contentView是否相同并且具有相同的子视图。
答案 1 :(得分:0)
我不确定我是对的,但这件事总是对我有用。
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
If(touch.view==your view)
{
NSLog("do your task here");
}
}