2012-05-26 3 views
0

iOS 응용 프로그램의 일부로 PDF Reader가 필요합니다. 사용자가있는 페이지를 표시하기 위해 UILabel을 만들고 PDFScrollView (UIScrollView의 하위 클래스)에 배치했습니다. 이 레이블은 페이지를 변경할 때마다 레이블의 IBOutlet에 텍스트를 변경하라는 메시지를 전송하기 때문에 스크롤 뷰에 있어야합니다.UIScrollVIew의 정적 개체

그러나 UIScrollView에서 확대 ("밖으로 스크롤") 할 때마다 레이블의 크기도 축소됩니다 (크기는 변경되지 않지만 바깥쪽으로 이동 함). 이로 인해 결국 화면에서 벗어납니다. UILabel이 정적이고 UIScrollView에서 이동하지 않도록 어떻게 변경합니까?

답변

1

대신 UIScrollView 하위 클래스 중, 하위 클래스 UIViewUIView와 스크롤 뷰의 하위 뷰없는 파단과 같은 UIScrollViewUIView 장소. UIView 안에 라벨 등을 배치하고 부모보기에서 스크롤보기와 다른보기 사이의 통신을 관리하게하십시오. 당신의 UIScrollViewDelegate에서

UIView + UIScrollView (your PDFScrollView) 
+---------------------------------------+ 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-          - 
-  UIView (not a subview)   - 
-  +----------------------+  - 
-  -  Label(s)  -  - 
-  -      -  - 
-  +----------------------+  - 
+---------------------------------------+ 
+0

ViewController-> UIView-> UIScrollView를 UIView의 모든 레이블로 할 수 있습니까? – danielmhanover

+0

내가 의미하는 바를 설명하는 시각을 더했습니다. –

+0

그래서 UILabel은 ScrollView의 하위보기의 하위보기 여야합니까? – danielmhanover

0

는 메소드를 구현 : 당신은 당신이 scaleXscaleY 모두 1.0/scrollView.zoomScale를 사용하여 시도 할 수 제대로 scaleX가, scaleY를, X 및 Y.을 계산

- (void)scrollViewDidZoom:(UIScrollView*)scrollView { 

    uiLabel.transform = CGAffineTransformMakeScale(scaleX, scaleY); 
    uiLabel.center = CGPointMake(x, y); 
} 

.

Ray Wenderlich 사이트의보기 계층 구조에 UIScrollView을 사용하는 방법에 대한 아주 좋은 자습서가 있습니다.

+0

CGAffineTransformScaleMake가 빌드 오류를 만든다. – danielmhanover

+0

죄송합니다, CGAffineTransformMakeScale ... – sergio

+0

이것은 문제를 해결하지 못합니다. – danielmhanover