Ios UIScrollVIew中的静态对象

Ios UIScrollVIew中的静态对象,ios,uiscrollview,Ios,Uiscrollview,我的iOS应用程序的一部分包括一个PDF阅读器。为了显示用户所在的页面,我创建了一个UILabel并将其放置在PDFScrollView(UIScrollView的子类)中。此标签必须位于滚动视图中,因为每当我更改页面时,滚动视图都会向标签的IBOutlet发送一条消息,告诉它更改其文本 但是,每当我在UIScrollView中放大(滚动“out”)时,标签也会缩小(其大小不会改变,但会向外移动)。这导致它最终离开屏幕如何更改它,使UILabel在UIScrollView中是静态且不移动的?而不

我的iOS应用程序的一部分包括一个PDF阅读器。为了显示用户所在的页面,我创建了一个UILabel并将其放置在PDFScrollView(UIScrollView的子类)中。此标签必须位于滚动视图中,因为每当我更改页面时,滚动视图都会向标签的IBOutlet发送一条消息,告诉它更改其文本


但是,每当我在UIScrollView中放大(滚动“out”)时,标签也会缩小(其大小不会改变,但会向外移动)。这导致它最终离开屏幕如何更改它,使UILabel在UIScrollView中是静态且不移动的?

而不是子类化
UIScrollView
,子类化a
UIView
并将
UIScrollView
UIView
作为子视图放置,而
UIView
不是滚动视图的子视图。将标签等放置在
ui视图中
并让父视图管理滚动视图和其他视图之间的通信

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

UIScrollViewDelegate
中,实现以下方法:

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

    uiLabel.transform = CGAffineTransformMakeScale(scaleX, scaleY);
    uiLabel.center = CGPointMake(x, y);
}
在这里可以正确计算scaleX、scaleY、X和Y。 您可以尝试对
scaleX
scaleY
使用
1.0/scrollView.zoomScale


关于在站点上使用视图层次结构的
UIScrollView
有一个非常好的教程。

我可以在UIView中使用我的所有标签执行ViewController->UIView->UIScrollView吗?我添加了一个视觉来解释我的意思。所以UILabel应该是ScrollView子视图的子视图吗?不,
UILabel
应该是
UIView
的子视图,它“浮动”在
UIScrollView
上(不是子视图,否则它也会滚动)。这两个视图是一个大的
UIView
的子视图。您是说ViewController的默认UIView?这并不能解决问题。仍然存在编译问题,或者只是UILabel保持缩放?尝试对scaleX和scaleY使用1.0。UILabel会保持缩放。我试了1.0,但都没用。不,也不行