ズームしたビュー(viewForZoomingInScrollView:scrollViewで返される)とズームされたビューにアノテーションを付ける多くの子を持つUIScrollViewがあり、常にズームしたビューの上に相対座標で配置する必要があります内部でアニメーションを作成中のUIScrollViewコールバック
UIScrollView
- zoomChild (size 100x100 at scale 1)
- Annotate Child (size 10x10), always placed at relative position (0.2, 0.2) of zoomChild's frame
私はUIScrollViewをサブクラス化し、scrollViewDidZoom:をオーバーライドしました。私はこれがある限り、ユーザはscrollviewと相互作用していると正常に動作します
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
self.annotateChild.frame = CGRectMake(0.2*100*self.zoomScale, 0.2*100*self.zoomScale, 10, 10);
}
のような注釈の子を配置します。 scrollViewDidZoom:/ scrollViewDidScrollは:,しかし、とき
zoomBounce呼び出されていないようです:scrollviewがminZoomより小さく挟まれ、ユーザーは自分の指とscrollviewが戻っminScaleにアニメートリリース。 scrollViewDidZoom:アニメーションが完了したときに呼び出されますが、中には呼び出されません。
zoomToRectを使用してrectにズームする場合:animated:アニメーションが完了するまで、scrollViewDidZoom:は呼び出されません。
そこで質問はに沸く:どのように私は、これはいくつかの内部のアニメーションを経由して発生したときなど、いつでもself.zoomScaleの変化を、通知を受けることができますか?
また、アノテーションビューをサブビューとしてズームビューに追加することはできますか?どうにかスケールされていないことを確認してください。
ここ