iphone - 获取动画 ScrollView 的当前位置

标签 iphone cocoa-touch uiscrollview uiviewanimation

我遇到了以下问题。

我对 uiscrollview 进行了子类化,其中 contentOffset 通过以下代码进行动画处理:

[UIView animateWithDuration:1.0 
                      delay:1.0
                    options:options
                 animations:^{
                     self.contentOffset = CGPointMake(label.frame.size.width, 0);

                 }
                 completion:^(BOOL completed) {
                     //some other stuff
                 }];

现在,当用户“willBeginDragging” ScrollView 时,我想停止当前动画并将scrollview.contentoffset设置为它在uianimation中的当前位置。

例如,用户进入屏幕,1秒后 ScrollView 开始滚动,如果用户在2秒后触摸滚动并拖动它,则scrollview.contentoffset应该具有当前动画位置的精确位置。

如果我在 willbegindrag 方法中获取内容偏移值,它已经作为动画的最后一个值,因为 uianimation 将这些值设置为结束状态,然后进行动画处理。

如何获取内容相对于运行动画的当前位置偏移量?

NSLog(@"pos of content x %f, y %f", [[self.layer presentationLayer] frame].origin.x, [[self.layer presentationLayer] frame].origin.y);

我读过有关表示层的内容,但 View 本身不是动画的,我需要scrollview.contentoffset。

嗯,有什么想法吗?谢谢

已经解决:

self.layerpresentationLayer 是绝对正确的。

但我必须使用边界而不是框架......

抱歉,现在你和我都知道了:P

所以正确的代码是:

CGPoint pos = [[self.layer presentationLayer] bounds].origin;

在动画时获取动画 ScrollView 的当前位置。

最佳答案

您可以使用以下代码获取 ScrollView 滚动时的内容偏移量...

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{

 NSLog(@"%f", scrollView.contentOffset.x);

}

关于iphone - 获取动画 ScrollView 的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7346952/

相关文章:

UITableView 上的 iOS 8 灰框

iphone - UIScrollView 问题 : forbid to "scroll to empty space"

ios - 如何计算 UIScrollView 结束拖动所需的时间?

iphone - 从 URL 读取字符串,然后将其图像加载到 UIImageView 中

android - 带有链接的 <li> 在 iPhone 上显示较小的元素符号

iphone - 为什么 presentModalViewController 第二次不工作了?

iOS - 将应用程序与文本文件捆绑在一起

android - Trigger.io 原生插件和源代码控制

objective-c - 指定核心数据属性的有效值

iOS 即使使用调度也会出现延迟