0

次のコードを使用してスクロールビューを作成しています。ナビゲーションバー用のスペースを確保するために、scrollViewを44px下に移動したいと思います。

scroll = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
scroll.backgroundColor = [UIColor clearColor];
scroll.delegate = self;
image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Menu.png"]];
scroll.contentSize = image.frame.size;
[scroll addSubview:image];
scroll.minimumZoomScale = scroll.frame.size.width / image.frame.size.width;
scroll.maximumZoomScale = 2.0;
[scroll setZoomScale:scroll.minimumZoomScale];

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];

[doubleTap setNumberOfTapsRequired:2];

[scroll addGestureRecognizer:doubleTap];
self.view = scroll;

どんな助けでも大歓迎です。

4

3 に答える 3

1

インターフェイスビルダーにスクロールビューをアウトレットとして追加するだけで、ナビゲーションバーの下に配置できます。

.h でスクロール ビューを宣言する

ViewDidLoadの下の.m

[scroll setScrollEnabled:YES];
[scroll setContentSize: CGSizeMake(320, 1000)]; ////or whatever size you want here
于 2012-10-05T18:38:24.390 に答える
1

おそらく別のフレームで初期化する必要があります...しかし、それはこのナビゲーションバーが作成されている場所/方法によって異なります。ビュー コントローラーがあり、これらがすべてビュー コントローラーのビューのサブビューである場合は、viewDidLoad でオブジェクトを作成し、最初に self.view.bounds を使用して初期化幅を取得してナビゲーション バーを作成する必要があります。UIViewAutoresizingFlexibleWidth | を入れたいと思うでしょう。ここでは autoResizingMask として UIViewAutoresizingFlexibleBottomMargin を使用します。次に、スクロールビューがナビゲーションバーの下のビューの残りの部分である場合、次を使用してフレームを作成できます

CGRect scrollFrame = CGRectInset(self.view.bounds, 0, navbar.bounds.size.height)

UIViewAutoresizingFlexibleWidth の autoresizingMask を配置 | スクロールビューの UIViewAutoResizingFlexibleHeight。

別の場所/方法でビューを作成している場合は、その一部を変更する必要がある場合があります。私はあなたのビューが上部のナビゲーションバーで、高さが x ピクセルであると想定していました (この場合は 44 ですが、スクロールビューフレームを設定するコンテキストでは重要ではありません)。次に、残りのビューを埋めるスクロールビュー。

于 2012-10-05T18:48:36.477 に答える
1

フレームを手動で作成するには、コードは正しいです。

scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0,44,320,480)];

:)

これは iPod および iphone View 用ですが、これによりスクロールが 44px から開始されます。

于 2012-10-05T19:43:42.830 に答える