2012-05-26 60 views
0

我的iOS應用程序的一部分涉及PDF閱讀器。爲了顯示用戶所在的頁面,我創建了一個UILabel並將其放置在PDFScrollView(UIScrollView的子類)中。該標籤必須位於滾動視圖中,因爲無論何時更改頁面,滾動視圖都會向該標籤的IBOutlet發送一條消息,告訴其更改其文本。但是,無論何時我在UIScrollView中放大(滾動「out」),標籤也會縮小(其大小不會改變,但會向外移動)。這導致它最終離開屏幕。 如何更改它,使UILabel在UIScrollView中是靜態的和不移動的?UIScrollVIew中的靜態對象

回答

1

相反子類UIScrollView的,子類UIView並放置一個UIScrollViewUIView作爲與UIView不是滾動視圖的子視圖的子視圖。將您的標籤等放在UIView中,並讓父視圖管理滾動視圖和其他視圖之間的通信。

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

我可以使用UIView中的所有標籤做ViewController-> UIView-> UIScrollView嗎? – danielmhanover

+0

我添加了一個視覺來解釋我的意思。 –

+0

所以UILabel應該是ScrollView子視圖的子視圖? – danielmhanover

0

在你UIScrollViewDelegate,實施方法:

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

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

,你計算正確的scaleX,的scaleY,X和Y 你可以嘗試使用1.0/scrollView.zoomScale兩個scaleXscaleY

關於使用UIScrollView作爲Ray Wenderlich網站的視圖層次結構有一個非常好的教程。

+0

CGAffineTransformScaleMake創建一個生成錯誤。 – danielmhanover

+0

對不起,這是CGAffineTransformMakeScale ... – sergio

+0

這不能解決問題。 – danielmhanover