0

我有带有标签的 UIScrollView。我正在获取触摸事件坐标。当用户点击屏幕时,我将点击坐标存储在变量中,然后我想滚动视图(使用 [myScrollView setContentOffset] 之类的东西),这样点击点的 y 坐标将成为我视图的中心,所以当你点击一些文本时,它会自动滚动到屏幕的中心。我不知道如何锻炼这个数学......

任何帮助都非常感谢!

4

2 回答 2

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];

应该管用。

于 2012-04-24T08:19:06.543 回答
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];
于 2014-04-22T13:09:57.723 回答