1

こんにちは、UIView 内に UIScrollView があります。オンラインで見つけたコード スニペットを使用しようとしましたが、何も変更されません。また、それらは主に UIView 内で行われる画像またはカスタム ビュー用ですが、私の場合は、プログラムで作成された UILabels の配列があります。境界値も変更しようとしましたが、何もしません。これは基本的に、viewDidAppear 内でサイズを確立する方法です。

[scrollView setContentSize:CGSizeMake([screenView getWidth], [screenView getHeight])];


scrollView.showsHorizontalScrollIndicator = true;
scrollView.showsVerticalScrollIndicator = true;

screenView は UIView 変数です。

これは私が使用する設定です(viewDidAppearでも):

doubleTapRecogniser = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapResponse:)];
    [doubleTapRecogniser addTarget:self action:@selector(doubleTapResponse:)];


    doubleTapRecogniser.delegate = self;

    doubleTapRecogniser.numberOfTapsRequired = 2;

    [self.scrollView addGestureRecognizer:doubleTapRecogniser];

これが、ダブルタップ方法を実装した方法です。

- (void) doubleTapResponse:(UITapGestureRecognizer *)recogniser
{

    CGFloat newZoomScale = self.scrollView.zoomScale / 1.5f;
    newZoomScale = MAX(newZoomScale, self.scrollView.minimumZoomScale);
    [self.scrollView setZoomScale:newZoomScale animated:YES];
}

内で NSLog メッセージを使用するとdoubleTapResponse、コンソールから応答を取得できます。ただし、何もしません。何が問題なのですか?私は iOS6.1 を使用しています

4

2 に答える 2

0
[doubleTapRecogniser addTarget:scrollView action:@selector(doubleTapResponse:)];

する必要があります

[doubleTapRecogniser addTarget:self action:@selector(doubleTapResponse:)];

スクロールビューはそのメソッド doubleTapResponse が何であるかを知らないためです。doubleTapResponse メソッドで UISCrollView のターゲットを呼び出そうとしているため、現在例外がスローされています。self のターゲットを追加し、このメソッドを自分で実装する必要があります。ここに、私が推測するズームのロジックがあります。

次も定義する必要があります。viewcontroller (または使用しているクラス) で doubleTapResponse

詳細については、これを参照してください: Ray Wenderlich ガイド

ズームするには、次の記事をご覧ください: QUESTION

于 2013-08-05T04:22:03.663 に答える