我有带标签的UIScrollView。我正在获得触摸事件坐标。当用户点击屏幕时,我将点击坐标存储在变量中,然后我想以这样的方式滚动视图(使用[myScrollView setContentOffset]之类的东西),这样点击点的y坐标将成为我视图的中心,所以当你点击一些文字时,它会自动滚动到屏幕的中心。我不确定如何锻炼这个数学...
任何帮助都非常感谢!
答案 0 :(得分:3)
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];
应该工作。
答案 1 :(得分:0)
我的解决方案非常相似,但我使用的是缩放比例,我希望将视图居中,而不是触点。所以我需要先计算中心点。
我的最终代码:
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];