2012-07-24 1 views
0

내가이 방법을 사용하여 X 좌표와 Y 좌표에 따라보기에서 UIImageView (또는 내가 가진 무엇이든)을 좀하고 싶습니다 :방법 X, Y에 따라보기에서 개체를 얻을 수 (있는 touchesMoved)

- (void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event { 
    CGPoint tappedPt = [[touches anyObject] locationInView:viewIndex]; 
    int  xPos = tappedPt.x; 
    int  yPos = tappedPt.y; 

    NSLog(@"xPos %i yPos %i ", xPos, yPos); 


    // do something with xPos and yPos like add them to an array 
} 

을 고마워요!

+0

이 터치 포인트에 따라 일부보기를 이동하겠습니까? – tipycalFlow

+0

nop 나는 uiimageview가 있는지 없는지, 그리고 uiimageview가 있으면 손가락 크기를 조정하고 크기를 조정할 때마다 손가락을 움직일 때마다 (그래서 x와 y를 얻음) 알고 싶습니다. – xGoPox

답변

0

UIImageView 객체의 프레임을 알고 있으면 포인트가 rect에 있는지 여부를 확인하기가 쉽지 않을 것입니다.

하지만 UIView의 하위 클래스를 만들려고했는데 이미지를 추가 했습니까? 그리고 그 위에 UIImageView 객체를 추가하는 대신 클래스 객체를 사용하고 UIViewController 클래스가 아닌이 UIView의 하위 클래스에서 touches 메소드를 구현합니까?

+0

하지만 가장 쉬운 방법은 있지만 방법을 찾을 수 없다는 것을 알고 있습니다. "이 프레임에 객체가 있습니다"라는 메시지가 나타납니다. 답장을 보내 주셔서 감사합니다. – xGoPox

+0

다른 사람들이 그것을 기억할 때 알려주는 것을 잊지 마십시오. :) –

-1

메인보기의 모든 하위보기를 가져올 수 있습니다. 그 다음에 서브 뷰의 접촉점을 결정합니다.

for(UIView *aView in [self subviews]) 
{ 
    if(CGRectContainsPoint(aView.frame, tappedPt)) 
    { 
     return aView; 
    } 
} 

그러나 문제가 있습니다. 많은 하위보기가 겹치면보기 만 볼 수 있습니다. 뷰 배열을 얻기 위해 코드를 수정할 수 있습니다.

+0

나는 이것을 시험해 본다, – xGoPox

+0

너는 진짜로 이것을 같이해야한다 !!! 방법이 없습니다, 그것은 쉽습니다. 'CGRectContainsPoint'는 이미 당신이 찾고있는 것입니다. UIImageView인지 확인하기 위해서 단순히 if ([aview isKindOfClass : [UIImageView class])' – Fab1n

0

나는 자식 계층 구조를 살펴 보는 것이 아무것도 없다고 생각합니다. 당신은 UIView의 방법을 사용하여 작업을 조금 잘라 수 있습니다 : - 이벤트가 nil이 될 수 있지만, 당신은 여전히 ​​각각의 아이에게 그 테스트를해야 할 것이다, 그리고 잠재적으로는 자손의

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 

.

관련 문제