ラベル付きのUIScrollViewがあります。タッチイベントのコーディネートを取得しています。ユーザーが画面をクリックしているときに、クリック座標を変数に保存している場合、クリックしたポイントのy座標がビューの中心になるように、ビューをスクロールします([myScrollView setContentOffset]などを使用)。 、したがって、テキストをクリックすると、画面の中央に自動スクロールされます。私はこれの数学をどのように解決するかわかりません...
どんな助けでも大歓迎です!
ラベル付きのUIScrollViewがあります。タッチイベントのコーディネートを取得しています。ユーザーが画面をクリックしているときに、クリック座標を変数に保存している場合、クリックしたポイントのy座標がビューの中心になるように、ビューをスクロールします([myScrollView setContentOffset]などを使用)。 、したがって、テキストをクリックすると、画面の中央に自動スクロールされます。私はこれの数学をどのように解決するかわかりません...
どんな助けでも大歓迎です!
UIScrollView *aScrollView;
CGPoint touchPoint;
[aScrollView scrollRectToVisible:CGRectMake(touchPoint.x - roundf(aScrollView.frame.size.width/2.),
touchPoint.y - roundf(aScrollView.frame.size.height/2.),
aScrollView.frame.size.width,
aScrollView.frame.size.height)
animated:YES];
動作するはずです。
私の解決策は非常に似ていますが、スケールを使用しており、タッチポイントではなくビューを中央に配置したいと考えています。そのため、最初に中心点を計算する必要があります。
私の最終的なコード:
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];