1

一般的に:UIViewControllerのサブビューとしてxibファイルを含むカスタムUIViewを取得しました。コントローラにプログラムでサブビューを追加します。

私のUIViewControllerで:

NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"MyCustomSubView" owner:self  options:nil];
mySubView = [subviewArray objectAtIndex:0];
...
[self.view addSubview:mapView];

UIImageViewもあるこのサブビューをスクロールする必要があるため、カスタムUIViewをUIScrollViewに変更することにしました。

私は次の手順を実行しました。

  • MyCustomSubView.xibを変更し、カスタムクラスMyCustomSubViewを備えたUIScrollViewを追加しました(以前と同様にUIImageViewを追加しました)
  • MyCustomSubViewクラスを変更してUIScrollViewを拡張しました
  • MyViewControllerを変更してUIScrollViewDelegateを実装しました
  • mySubView.delegateをself(コントローラー)に設定します
  • (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollViewを実装し、サブビューのUIImageViewを返しました
  • imageviewおよびuiscrollviewでのユーザーインタラクションを有効にしました

これらは私が思う私の総ステップでした。ただし、例として、viewForZoomingInScrollViewメソッドは呼び出されませんでした。また、ズームインしようとしましたが、何も起こりませんでした。

誰かアイデア、何が間違っている可能性がありますか?

4

1 に答える 1

2

UIScrollViewクラスリファレンスページを簡単に見ると、次のことがわかります。

UIScrollViewクラスには、UIScrollViewDelegateプロトコルを採用する必要があるデリゲートを含めることができます。ズームとパンを機能させるには、デリゲートはviewForZoomingInScrollView:とscrollViewDidEndZooming:withView:atScale:;の両方を実装する必要があります。さらに、最大(maximumZoomScale)と最小(minimumZoomScale)のズームスケールは異なっている必要があります。

実装については言及しviewForZoomingInScrollView:ましたが、設定やscrollViewDidEndZooming:atScale:については言及しませんでした。それらのことを試してみて、まだ問題が解決しないかどうかを確認してください。maximumZoomScaleminimumZoomScale

于 2012-07-16T17:00:09.057 に答える