0

私の iOS アプリの一部には、PDF リーダーが含まれています。ユーザーがいるページを表示するために、UILabel を作成し、それを PDFScrollView (UIScrollView のサブクラス) に配置しました。ページを変更するたびに、スクロール ビューがメッセージをラベルの IBOutlet に送信し、テキストを変更するように指示するため、このラベルはスクロール ビューにある必要があります。

ただし、UIScrollView でズームイン (スクロール「アウト」) するたびに、ラベルもズームアウトします (サイズは変わりませんが、外側に移動します)。これにより、最終的に画面の外に移動します。UILabel が UIScrollView で静的で動かないように変更するにはどうすればよいですか?

4

2 に答える 2

1

をサブクラス化する代わりに、UIScrollViewa をサブクラス化し、スクロール ビューのサブビューではないサブビューとしてUIViewaUIScrollViewおよびを配置します。ラベルなどを の中に配置し、スクロール ビューと他のビューの間の通信を親ビューで管理します。UIViewUIViewUIView

UIView + UIScrollView (your PDFScrollView)
+---------------------------------------+
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-                                       -
-       UIView (not a subview)          -
-       +----------------------+        -
-       -      Label(s)        -        -
-       -                      -        -
-       +----------------------+        -
+---------------------------------------+
于 2012-05-26T16:09:25.253 に答える
0

UIScrollViewDelegateで、メソッドを実装します。

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

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

ここで、scaleX、scaleY、X、およびYを適切に計算します。と1.0/scrollView.zoomScaleの両方scaleXに使用してみることができscaleYます。

RayWenderlichサイトUIScrollViewのビュー階層に使用するための非常に優れたチュートリアルがあります。

于 2012-05-26T16:14:58.817 に答える