1

コードをプログラムで大きな画像の小さな領域にズームしようとしています。後でタップコードを追加しますが、今は動作を確認したいだけです。

このコードの zoomToRect はまったく何もせず、その理由がわかりません。私がそれを構築すると、画像は 0,0 原点に配置されます。

私は使用してみました:

setContentOffset と scrollRectToVisible の両方が正常に機能します。画像は指定された座標に移動します。しかし、画像を移動するだけでなく、画像を移動してズームする必要があるため、これらのどちらも必要ありません。

しかし、zoomToRect は何もすることを完全に拒否します。私はこれについて約 50 ページの例とチュートリアルを読みましたが、まったく機能しません。よくわからないまま髪をかきむしる。明らかに、本当に基本的または重要な点が欠けています。

UIImage *myFirstImage = [UIImage imageNamed:@"manga_page.jpg"];

UIImageView *myFirstImageView = [[UIImageView alloc] initWithImage:myFirstImage];

[myFirstImageView setFrame:CGRectMake(0, 0, myFirstImage.size.width, myFirstImage.size.height)];


UIScrollView *myFirstScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

[myFirstScrollView setContentSize:CGSizeMake(myFirstImage.size.width, myFirstImage.size.height)];

[myFirstScrollView addSubview:myFirstImageView];

[self.view addSubview:myFirstScrollView];

[myFirstScrollView zoomToRect:CGRectMake(300, 300, 300, 300) animated:YES];
4

2 に答える 2

2

問題は、ズーム用のデリゲートを定義していなかったことです。ここで viewForZoomingInScrollView (ページの下部) を参照してください。

https://developer.apple.com/library/ios/documentation/uikit/reference/uiscrollviewdelegate_protocol/Reference/UIScrollViewDelegate.html#//apple_ref/occ/intfm/UIScrollViewDelegate/viewForZoomingInScrollView

Xamarin フレームワークに切り替えたため、Objective C にコード フラグメントがありません。ただし、C# ソリューションは次のとおりです。

scrollView.ViewForZoomingInScrollView = delegate (UIScrollView sv) { return imageView; };

imageView は、スクロールするイメージを含む UIImageView です。

于 2013-11-07T07:57:46.890 に答える
0

UIScrollViewのmaximumZoomScaleプロパティとminimumZoomScaleプロパティを設定します。

于 2012-08-04T06:07:03.997 に答える