私のソリューションは非常に似ていますが、私はスケールを使用しており、タッチポイントではなくビューを中心にしたいと考えています。だから私は最初に中心点を計算する必要があります。
私の最終的なコード:
UIView *view; //View to center
UIScrollView *scrollView; //scroll view
CGPoint point = CGPointMake(view.frame.origin.x + view.frame.size.width/2,
view.frame.origin.y + view.frame.size.height/2);
CGRect rectToZoom = CGRectMake(point.x * scrollView.zoomScale - roundf(scrollView.frame.size.width /2.),
point.y * scrollView.zoomScale - roundf(scrollView.frame.size.height /2.),
scrollView.frame.size.width,
scrollView.frame.size.height);
[scrollView scrollRectToVisible:rectToZoom animated:YES];
おかげ甲斐、それが動作します。まだ問題はありますが、最初にテキストをクリックすると、中央にスクロールして、私が望むものになります。しかし、もう一度クリックすると(画面の中央にとどまっている間)、前の位置にスクロールします。 – izaslavs
奇妙に聞こえます。たぶんあなたは正しい方法でタッチポイントをつかんではいけません。いくつかのコードを投稿してください(おそらく別の質問に)。 –
@KaiHuppmannこのコードは完璧に動作しています。ありがとうございました。しかし、助けてくれますか?これは、スクロールビューがズームされているときは機能しません。ここでズーム倍率を適用してもらえますか? –