iPhone SDK : uiimageview를 드래그하는 데 문제가 있습니다
-
19-09-2019 - |
문제
내 앱의 iPhone 화면 주위에서 uiimageview를 드래그하려고합니다.
현재 설정 한 드래그 기능은 정상이며 이미지를 드래그하면 화면 주위로 이동합니다. 문제는 이미지 뷰를 드래그 할 필요가 없다는 것입니다. 화면의 어느 곳에서나 드래그 할 수 있습니다. 이미지를 움직입니다. 나는이 플랫폼을 처음 접했기 때문에이 문제를 해결하기 위해 무엇을 해야하는지 실제로 생각할 수 없습니다. 이미지를 드래그하려는 현재 코드는 다음과 같습니다.
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
CGPoint pt = [[touches anyObject] locationInView:pig];
startLocation = pt;
}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
CGPoint pt = [[touches anyObject] locationInView:pig];
CGRect frame = [pig frame];
frame.origin.x += pt.x - startLocation.x;
frame.origin.y += pt.y - startLocation.y;
[pig setFrame: frame];
}
모든 도움이 감사합니다. 그건 그렇고 돼지는 uiimageview입니다. 또한 이미지보기 "PIP"의 사용자 상호 작용을 설정하면 이미지가 더 이상 드래그 할 수 없지만 활성화되지 않도록 설정하지 않은 경우입니다.
해결책
UiimageView를 서브 클래스하고 구현하려고 시도 할 수 있습니다 touchesBegan:
그리고 touchesMoved:
직접. 그런 다음 InterfaceBuilder에서 uiimageview의 서브 클래스를 선택하십시오.
대체 텍스트 http://img.skitch.com/20090728-xetretcfubtcj7ujh1yc8165wj.jpg
오 예, 이제 사용자 상호 작용을 다시 설정해야합니다 ...
다른 팁
적어도 타이머 스레드에서 시작 / 커밋 애니메이션 시퀀스에 포함시켜야합니다.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.02] /* 0.02 seconds suration*/
/* move pig coordinates here */
[UIView commitAnimations];
새 움직임을 터치 매도로 저장 한 다음 타이머 스레드에서 처리하십시오.
UIView 카테고리를 사용하여 드래그 가능하고 드래그 가능한 영역을 정의 할 수 있습니다.https://github.com/rtoshiro/txdraganddrop