그래서 여러 건을 잡아서 번호를 결정하고 각 터치가 발생한 위치와 UIView UIViewController간에 다른 동작을보고 있습니다.UIView 대 UIViewControllers에서 터치 이벤트 처리에 건 드리면
기본적으로 이벤트 처리기는 다음과 같이 코딩됩니다.이 경우에는 touchesEnded이지만 실제로는 문제가되지 않습니다. 뷰에서 어떤 일이 발생하는지는 전체 컬렉션을 얻는 것입니다.하지만 컨트롤러에서는 한 번에 하나의 터치 만 가져옵니다. 즉, 터치의 컬렉션은 없지만 발생 된 각 터치에 대해 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
}
}
}