2

2つのスクロールビューを並べて配置し、個別にズームできます。これを行うには、ビューをスクロールビュー内に配置し、スクロールビューのズームスケールを設定します。これまでのところ、正常に動作します。ここで、2つの画像を一緒にズームする新しい要件があります。これにより、一方の画像をズームすると、もう一方の画像が同じズームスケールで自動的にズームされます。比較の際に便利なように、2つのスクロールビューのいずれかをスクロールすることで2つのスクロールビューを一緒にスクロールできるroambiアプリを参照として提供しました。基本的に、私がやっていることは、2つのビューの比較でもあります。スクロールビューデリゲートメソッドを実行しましたが、必要な結果を得ることができませんでした。どうすればよいですか?

4

2 に答える 2

1

私はこれを行ったことはありませんが、頭のてっぺんから、最初に両方でズームを同じにする必要があると思います(上記のように)。次に、デリゲートメソッドを使用して確認する必要があります両方のスクロールビューに同じ contentOffset 値があります。つまり、手動スクロールまたはプログラムによるスクロールによって一方が変更された場合、(デリゲート コールバックを使用して) もう一方を同じ contentOffset 値に設定する必要があります。

編集: リクエストに応じて、(テストされていない) コードを少し追加します:

- (void)scrollViewDidScroll:(UIScrollView*)scrollView
{
  if(scrollView == self.myFirstScroller)
  {
    self.mySecondScroller.contentOffset = self.myFirstScroller.contentOffset;
  } 
  else {
    self.myFirstScroller.contentOffset = self.mySecondScroller.contentOffset;
  }
}

ズームは上記と同様に行われます。

ただし、プロジェクトにドロップするだけのコピー アンド ペースト ソリューションを探している場合は、スクロール ビューについてもう少し勉強する必要があると思います。Apple プログラミング ガイドを読む必要があります。スクロールビューは少し扱いに​​くい場合があり、多くの場合、正しく機能させるために多くのデリゲート メソッドを使用する必要があるためです。

于 2012-04-10T07:22:53.327 に答える
0

少し前に似たようなものを実装しました(ボタン用に実装しました)。これが私がやった方法です:

2 つの を取りUIScrollView、それらを参照します (私は と を使用firstScrollViewしましたsecondScrollView)

2 つの を取りUIButton、それらを参照します (私は と を使用firstImgBtnしましたsecondImgBtn)。デリゲートを両方のスクロールビューに設定し、次のデリゲート メソッドを使用します。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    //return the respective button in the scrollview to be zoomed
    if(scrollView==firstScrollView){
        return firstImgBtn;
    }
    else{
        return secondImgBtn;
    }
}

- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
    // zoom in the other scrollview when one has zoomed
    if(zoomTogether){//a bool to decide whether to zoom the two together or not
        if(scrollView==firstScrollView){
            secondScrollView.zoomScale = firstScrollView.zoomScale;
        }
        else{
            firstScrollView.zoomScale = secondScrollView.zoomScale;
        }
    }
}

これは、の任意のサブクラスに適用できますUIView- あなたの場合はUIImageViewsになります

于 2012-04-10T05:54:42.183 に答える