현재 사용자가 사진을 찍거나 자신의 라이브러리에서 선택하는 응용 프로그램이 있습니다.이동 가능한 이미지 뷰를 통한 화면 표시
다음 컨트롤러에는 선택/찍은 이미지가 표시됩니다.
내가 지금하고 싶은 것은 이미지보기 상단에 어떤 종류의보기를 보여줍니다. 보기는 반투명 가장자리 모서리와 아래에 이미지를 표시하는 원을 가지고 (transulcent). 기본적으로 이미지의 일부로 선택됩니다.
그러면 사용자가 이동 가능해야하므로보기가 화면에 표시되는 방식을 저장해야합니다.
가장 좋은 방법은 무엇입니까?
이동할 수있는 오버레이보기가 필요합니다. 원은 항상 고정 된 크기가 될 것이고 내부는 아래의 이미지 뷰를 보여 주며 외부는 0.5 투명도이므로 이미지를 볼 수는 있지만 완전히 볼 수는 없습니다. 그런 다음 이동 한 원의 위치를 저장 하시겠습니까?
---- ----- EDIT
I이 생성 한 화상 예이다.
UIImageView (아래쪽 레이어)로 사진이있는보기가 있습니다. 이 위에 (위의 그림과 같은)보기를 추가하려고합니다. 위 그림은 실제로 제안 된 PNG입니다. 그러나이 오버레이는 움직일 수 있습니다. 원은 투명 (0)이므로 아래의 사진을 완전히 볼 수 있습니다. 바깥 부분 (회색)은 부분적으로 투명합니다 (0.5). 그래서 완전하게는 볼 수 없습니다.
사진의 특정 지점을 표시하기 위해 평면도 (원형 부분)가 사진에서 움직입니다. 이 예제에서 원이 움직이면 측면 (회색)이 화면에서 끝납니다. 따라서보기를 움직이는 것을 고려한 거대한 이미지를 만들어야합니다. 이것이 최선의 방법은 아닙니다.
EDIT 2 ---- 이제 하나의 UIImageView가 photoView (다른 UIImageView) 위에 있습니다. 오버레이는 화면 중간에 원이있는 스크린의 4 배입니다. 항목이 내가 실행하는 제스처 인식기가 이동
:
있는 UIImageView 위의에서 현재-(void)handlePan:(UIPanGestureRecognizer *)gesture {
NSLog(@"Pan Gesture");
gesture.view.center = [gesture locationInView:self.view];
}
가 중간 지점에서 이동, 원 보이는 것입니다 그런 식으로 때 이동합니다 손가락 움직임.
모두 훌륭하지만 handlePan 메서드에 제안 된 답변을 구현하는 방법은 무엇입니까? 그래서 중간 지점이 너무 가깝지 않은지 확인해야합니다. 이상적으로 원이 화면에서 완전히 (또는 대부분) 벗어나는 것처럼 보이지 않도록 화면 주위에 50여 마진을 넣으시겠습니까?
정말 그다지 커질 필요는 없습니다. 원의 오른쪽과 왼쪽에 여백 frame.size.width를 지정하고 위쪽과 아래쪽에 frame.size.height를 지정하면 충분합니다. 회색 영역의 테두리를 보지 못했습니다. – johnyu
위의 예는 두 개의 UIImageViews입니다. 하단에있는 하나는 사진을 보유하고 두 번째는 회색 영역과 원을 모두 포함합니다. 여백은 회색 영역의 너비 만 어떻게 증가 시킵니까? – StuartM
반투명 영역의 오른쪽 가장자리에서부터 반투명 영역의 오른쪽 가장자리까지의 거리가 UIImageView의 frame.size.width와 같도록 반투명 및 반투명 영역을 함께 움직이는 것을 의미합니다. 사실 원이 얼마나 멀리 움직 이느냐에 따라 그보다 작을 수 있습니다. 이미지 뷰의 경계 내에 있어야하는 경우에는 imageView.frame.size.width - (circleRadius * 2)가 오른쪽과 왼쪽에 충분해야합니다. (유사하게 높이, 위아래로) – johnyu