【问题标题】:How to obtain changes to view position when animating frame?动画帧时如何获取视图位置的变化?
【发布时间】:2011-11-05 00:04:41
【问题描述】:

我需要根据另一个视图在屏幕上移动时的位置不断更新视图。我尝试在帧上使用 KVO,但它似乎只在动画开始时触发。有推荐的方法吗?

【问题讨论】:

    标签: iphone objective-c ios ipad key-value-observing


    【解决方案1】:

    你想看看核心动画表示层,它应该告诉你动画期间的位置。

    【讨论】:

      【解决方案2】:

      我会添加一个可重复的计时器并制作如下内容:

      [self updateView:_view
         usingPosition:[_anotherView.presentationLayer position]];
      

      (难道你不知道_anotherView的动画吗?也许你可以直接设置_view动画?)

      【讨论】:

        【解决方案3】:

        为什么不同时为两个视图设置两个动画?

        [UIImageView animateWithDuration:aDuration
                                   delay:0
                                 options:UIViewAnimationCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionBeginFromCurrentState
                              animations:^(void) {
                                  view1.center = somePosition;
                                  view2.center = someOtherPosition;
                              } completion:NULL];
        

        它们将同时移动并带有选项: UIViewAnimationOptionBeginFromCurrentState 如果您在此动画完成之前启动其他动画,则视图将从它们停止的点开始。

        但是,如果这不是您要查找的内容,您能否准确更新您的问题,了解 view1 的移动方式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-22
          • 2011-08-10
          相关资源
          最近更新 更多