滚动时在 UIPageController 中跟踪 frame.origin.x

Posted

技术标签:

【中文标题】滚动时在 UIPageController 中跟踪 frame.origin.x【英文标题】:Tracking frame.origin.x in UIPageController while scrolling 【发布时间】:2014-08-02 15:00:04 【问题描述】:

我在这里使用标准 UIPageViewController,我需要跟踪 x 坐标以便相应地更改图像的 alpha。我尝试像这样在UIPageViewController 中找到UIScrollView,它可以工作:

for (UIView *view in self.pageViewController.view.subviews) 
    if ([view isKindOfClass:[UIScrollView class]]) 
        [(UIScrollView *)view setDelegate:self];
    

但是当我这样做时:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
    MTWPageContentViewController *pageContentVC = [self viewControllerAtIndex:_mainPageControl.currentPage];
    NSLog(@"%f", pageContentVC.view.frame.origin.x);

NSLog 给我 0.000 这显然意味着我做错了什么。

pageContentVC 存在,它是我滚动时可见的视图控制器。 那么,告诉我如何在滚动时跟踪UIPageViewController 的子视图的x 坐标?

【问题讨论】:

【参考方案1】:

您可以从UIPageViewController 获取手势识别器并将自己添加为目标/动作以获取有关平移的信息。

for (UIGestureRecognizer *gestureRecognizer in self.pageViewController.gestureRecognizers) 
  if ([gestureRecognizer isKindOfClass:UIPanGestureRecognizer.class]) 
    [gestureRecognizer addTarget:self action:@selector(panned:)];
  

【讨论】:

谢谢!那么,如何使用手势识别器获取 x 坐标?

以上是关于滚动时在 UIPageController 中跟踪 frame.origin.x的主要内容,如果未能解决你的问题,请参考以下文章

使用溢出时在移动/ios上滚动缓慢:滚动

图像缩放时在 UIScrollView 中停止滚动图像

运行光流跟踪时在每帧中的点之间绘制一条线

如何在按钮按下时在集合视图中滚动(水平)?

如何在通过其他域注册/登录时在 Google Analytics 中跟踪和 ID 用户?

使用无限滚动时在我的表格视图中重复数据