2017-03-30 7 views
1

imageviewとcircleviewのコンテナビューを持っています。ピンチジェスチャーでサークルビューのcircleViewではなくimageviewの縮尺を調整します。以下はスケーリングでサブビューの問題が発生する

コンテナビューのImageViewのと同様にcircleViewがスケーリングなっているのスケーリングに私のコード

if(gestureRecognizer.state == .began || gestureRecognizer.state == .changed) { 

     let currentScale: CGFloat = containerView.layer.value(forKeyPath: "transform.scale") as! CGFloat 

     // Constants to adjust the max/min values of zoom 
     let kMaxScale: CGFloat = 2.0 
     let kMinScale: CGFloat = 1.0 

     var newScale = 1 - (lastScale - gestureRecognizer.scale) 
     // new scale is in the range (0-1) 

     newScale = min(newScale, kMaxScale/currentScale) 
     newScale = max(newScale, kMinScale/currentScale) 
     containerView.transform = containerView.transform.scaledBy(x: newScale, y: newScale) 

     lastScale = gestureRecognizer.scale 
    } 

です。

サブビューが拡大縮小されないようにする方法を知っている人はいますか?

答えて

0

ビューはスーパービューから参照フレームを継承します。ビューにトランスフォームを適用すると、ビューに影響を与え、すべてのスーパービューに影響します。それは紙の上にそれが描かれたものを縮小するようなものです。もちろん、紙が縮むと図面が小さくなります。

他のビューのサブビューにしないでください。収縮しているビューの上に配置する兄弟ビューを作成します。そうすれば、彼らは影響を受けません。

+0

私はコンテナビューをスケーリングした後で、私が円のビューを使用してコンテナビューに触れる場所を追加したいと思っています。 @Duncan –

+0

質問を編集して、試したコードを表示してください。私または他の人があなたを助けることができます。 –

関連する問題