2014-06-16 4 views
0

I가 다음과 같은 계층 구조 : 보기 (스크롤 및 활성화 확대)있는 ScrollView containerview (지도 포함) 이미지 뷰 버튼 탐색 패널동기화 UIViews의 계층 구조 및 CALayers

에 대한 뷰에 대한 전망 내가 관심의 어떤 점을 넣어야 할 이미지보기 (사용자가 선택하는 카테고리에 따라) : 문제점은 다음과 같습니다 내가 컨테이너보기에 첨부하는 경우, 그들은 것입니다 매우 쉽게 정확한 위치를되어지고, 하지만를 확대 할 때 이미지와 함께 확대/축소하고 동일하게 유지해야합니다. 내가있는 ScrollView에 첨부 만약 내가 아무것도 (1) ​​ 참조하지 않습니다이지는 .. 을 내가 기본보기에 첨부하면, 나는 두 가지 문제가 있습니다 1 버튼에있는 ScrollView 볼 사이에 계층 구조의 위치를 ​​찾기 위해, 등등 (그들은 응용 프로그램의 상단에 있고지도 위에 있지만 컨트롤 패널, 버튼 등 아래에 있어야합니다. 2로 조정하고 zoomPoint로 스크롤 - done toView 뷰를 추가하면 그들이 잘 보여,하지만 난 그들에 사용자 입력이없는)에있는 ScrollView에서 컨테이너보기 (그들은 터치를받지 않습니다) 내가있는 CALayer를 서브 뷰 형제 것은, 내가 표시에 서브 레이어 (관심 장소)를하지 않는 변환하면 .

필자 용기 뷰 서브 클래스 CGAffineTransform invertedTransform = CGAffineTransformInvert는 (변환)를 적용하여 사용해 setTransform을 무시하려고 노력 (1); 하지만 문제는 그것에 대한 전망을 참조로 배열 전달했다

이 경우에 무엇을 추천 하시겠습니까? 대단히 감사합니다!

S.

+0

, 당신은 답을 작성하는 더 나을 것 :

시간을 통과 한 후, 나는 초기 이런 식으로 변환 얻기 위해, 너무 addSubview를 대체 할 발견했습니다 질문을 편집하는 대신 자신의 질문에 동의하고 받아들입니다. – jrturton

+0

안녕 jrturton은, 당신의 의견 주셔서 대단히 감사합니다. 나는 새로운이에요. 좋은 하루 되세요. – user63391

답변

0

드디어 containerView에 하위 뷰를 추가 한 나는 그것을 서브 클래스했습니다

- (void)setTransform:(CGAffineTransform)transform 
{ 
    [super setTransform:transform]; 

    CGAffineTransform invertedTransform = CGAffineTransformInvert(transform); 
    for (UIView *view in self.subviews) 
    { 
     if ([view isKindOfClass:[MarkerClass class]]) { 
      [view setTransform:invertedTransform]; 
     } 
    } 
} 

유일한 문제는 내가 마커의 짧은 크기의 버전 containerView를 확대하기 전에 화면에 나타납니다. 당신이 당신의 자신의 문제를 해결 한 경우

-(void)addSubview:(UIView *)view { 
    [super addSubview:view]; 
    if ([view isKindOfClass:[MarkerClass class]]) { 
    CGAffineTransform invertedTransform = CGAffineTransformInvert(self.transform); 
     [view setTransform:invertedTransform]; 
    } 
}