2010-12-12 5 views
3

여러 개의 UIImageView 하위 뷰를 사용하여 UIScrollView를 올바르게 가져 오는 데 문제가있어서 각 내부의 여러 개의 UIScrollView 하위 뷰와 각각의 내부에있는 UIImageView를 사용하여 시도했습니다. 그렇게하면 UIScrollView 하나만 스크롤 할 수 있고 다른 하나는 확대/축소 할 수 있습니다.중첩 된 UIScrollViews의 하위 뷰에 액세스하는 방법

제 질문은 : 어떻게 하위보기의 하위보기에 액세스 할 수 있습니까? 예를 들어 [scrollView viewWithTag:tagInt];을 사용하여 서브 뷰에 액세스 할 수 있다는 것을 알고 있지만 서브 뷰의 서브 뷰에 액세스 할 수없는 것은 [[scrollView viewWithTag:tagInt] viewWithTag:tagInt2];입니다. 왜냐하면 viewWithTag는 단일 UIView 만 반환하고 서브 뷰는 모두 반환하지 않기 때문입니다.

나는 항상 각 하위보기에 고유 한 태그를 부여하고 그런 식으로 액세스 할 수 있지만 가장 우아한 해결책은 아닙니다.

하위보기에 액세스 한 다음 하위보기의 하위보기 (예 : 내 기본보기의 하위보기 인 확대/축소에 사용되는 UIScrollView에 액세스 한 다음 하위보기 UIImageView에 액세스)에 가장 좋은 방법은 무엇입니까?

답변

0

이 작업을 수행하는 가장 우아한 방법은 UIScrollView의 하위 클래스로, UIImageView 속성을 지정하는 것입니다. 이 도움이

MyScrollView *myScrollView = (MyScrollView *)[scrollView viewWithTag:tagInt]; 
UIImageView *imageView = myScrollView.imageView; 

희망 : 그런 식으로, 당신은 같은 것을 함께이 UIImageView에 액세스 할 수 있습니다!

+0

좋은 해결책 인 것처럼 들리지만 불행히도 서브 클래 싱은 현재 내 머리 위로 조금 있습니다. 하위보기의 모든 하위보기에 액세스하는 더 간단한 방법이 있습니까? – Jackson

0

subviews 속성을 사용하여 모든 UIView의 하위보기 배열을 가져올 수 있습니다.

for(UIView *subview in [myScrollView subviews]) { 
    // do anything with your subview here. 
} 
3

지금은 서브 클래 싱하기가 쉽지 않다면 이미지가 포함 된 UIScrollViews에 태그를 지정해야합니다. 그런 다음 BobC가 제안한 작업을 조금 더 수행해야합니다.

for (UIView *subview in [myScrollView subviews]) 
{ 
    //check if the current subview is one of the UIScrollViews 
    if (subview.tag > 100) 
     //do something with the UIScrollView 
} 
관련 문제