0

Scroll-View 内に Child-View があり、Scroll on Top、Left、Right で問題が発生していますか?

子サブビューにピンチ & ズームを追加するためのコード

 UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc]
                                                 initWithTarget:self
                                                 action:@selector(twoFingerPinch:)]
                                                autorelease];

    [_childView addGestureRecognizer:twoFingerPinch];

子ビューをピンチ & ズームする方法

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer
{
    //NSLog(@"Pinch scale: %f", recognizer.scale);
    CGAffineTransform transform = CGAffineTransformMakeScale(recognizer.scale, recognizer.scale);
    // you can implement any int/float value in context of what scale you want to zoom in or out
    _childView.transform = transform;

    _scrollView.contentSize =
    CGSizeMake(_scrollView.frame.size.width,_childView.frame.size.height);

}

Scroll-View ContentSize 設定に問題はありますか?

これが私のコードです

コードリンク

ありがとうございました

4

5 に答える 5

0

以下のコードですべてのコードと変更を削除しました。非常に愚かな間違いを犯しました:)

   _scrollView.contentSize = CGSizeMake(_childView.frame.size.width, _childView.frame.size.height);
        _scrollView.maximumZoomScale = 6.0;
        _scrollView.minimumZoomScale = 1.0;
        _scrollView.clipsToBounds = YES;
        _scrollView.delegate = self;


    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    //    NSLog(@"View - %@\n",_childView);
        return _childView;
    }

ありがとう@マーベリックス

:)

于 2013-12-18T11:55:47.070 に答える
0

あなたの現在のシナリオについて 100% 確信があるわけではありません。

しかし、iOS5 以降、UIScrollView には次のようなものがあります:-

// `pinchGestureRecognizer` will return nil when zooming is disabled.
@property(nonatomic, readonly) UIPinchGestureRecognizer *pinchGestureRecognizer NS_AVAILABLE_IOS(5_0);

説明から、これらを設定すると、

@property(nonatomic) float minimumZoomScale;     // default is 1.0
@property(nonatomic) float maximumZoomScale;     // default is 1.0. must be > minimum zoom scale to enable zooming

これらのプロパティを使用して、単純にズームを有効にすることができます。また、独自の UIGestureRecognizer を実装しなくても、ズームインとズームアウトが自動的に機能するはずです。

于 2013-12-18T07:10:35.783 に答える
0

scrollView の幅を contentsize に渡しています。childView の幅を渡す必要があります。

_scrollView.contentSize = CGSizeMake( _chilView .frame.size.width,_childView.frame.size.height);

于 2013-12-18T07:08:01.737 に答える
0

編集:

_scrollview フレームサイズと _childview フレームサイズを同じに設定します。

//スクロールビュー 56、92、196、408 のフレーム。

_scrollView.delegate = self;

_scrollView.minimumZoomScale = 1.0;
_scrollView.maximumZoomScale = 10;

_childView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 196, 408)];

_childView.backgroundColor=[UIColor blackColor];

[_scrollView addSubview:_childView];

 [_scrollView setContentSize:_childView.frame.size];

このデリゲートを実装します

 - (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
 {
    return _childView;
  }

また、XIB の自動サイズ変更フラグも確認してください。下マージンに設定されます。

于 2013-12-18T07:09:40.087 に答える
0

_childView.frame.size.heightの後に取得しないでくださいCGAffineTransform

この質問はそれをよく説明しています。

于 2013-12-18T07:09:46.647 に答える