隐藏在另一个视图后面的视图子视图的动画

约夫·施瓦兹(Yoav Schwartz)

我正在尝试对a进行动画处理,UIImage这是UIView界面生成器中a的子视图我的问题是,该动画会“通过”另一个视图(即表格视图),然后仅“落后于”它,而无法完全显示。我的视图层次结构是这样的:

View
   View
      SubviewToAnimate
   TableView

我已经[self.view bringViewToFront:SubviewToAnimate]在视图本身和动画中尝试了Both。

动画代码:

-(void)startAnimationWithImageView:(UIImageView*)imageView{

    imageViewToMove = imageView;
    imageViewFirstAlpha = imageViewToMove.alpha;

    firstCenterOfView = imageViewToMove.center;

    double firstX =self.parabelWidth*self.startValue;
    double firstY = self.parabelHeight*pow(self.startValue, 2);
    firstPointOfParabel = CGPointMake(firstX, firstY);

    if (points) {
        points = nil;
    }
    points =[[NSMutableArray alloc]init];

    for (int counter = self.startValue; counter < self.stopValue; counter++) {

        double y = self.parabelHeight*pow(counter, 2);
        double x = self.parabelWidth*counter;

        CGPoint point = CGPointMake(x, y);
        [points addObject:[NSValue valueWithCGPoint:point]];
        //DLog(@"point: %@", NSStringFromCGPoint(point));

    }

    animationCounter = 0;
    [self moveView];


}

-(void)moveView{

    if (animationCounter < points.count) {
        [UIView animateWithDuration:self.duration
                              delay:0
                            options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationCurveLinear
                         animations:^{

                             NSValue *val = [points objectAtIndex:animationCounter];
                             CGPoint point = [val CGPointValue];

                             double delta = 1.0/points.count;
                             imageViewToMove.center = CGPointMake(firstCenterOfView.x-firstPointOfParabel.x+point.x, firstCenterOfView.y-firstPointOfParabel.y+point.y);
                             imageViewToMove.alpha = sqrt(imageViewToMove.alpha-delta);

                             double scale = animationCounter*delta;
                             imageViewToMove.transform = CGAffineTransformMakeScale(sqrt(1-scale), sqrt(1-scale));

                             animationCounter++;

                         }
                         completion:^(BOOL finished){

                             [self moveView];

                         }];
    }else if (animationCounter == points.count) {
        imageViewToMove.center = firstCenterOfView;
        imageViewToMove.transform = CGAffineTransformMakeScale(1.0, 1.0);

        [UIView animateWithDuration:0.3
                              delay:0
                            options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationCurveEaseIn
                         animations:^{

                             imageViewToMove.alpha = imageViewFirstAlpha;

                         }
                         completion:NULL];
    }else
        return;


}
雾雾

您不能使用[self.view bringViewToFront:SubviewToAnimate]将图像视图放在表格视图之上,因为它不是表格视图的同级。

如果你有...

View
    SubView
    ImageView (animated view)
    TableView

然后该代码将起作用。

或者,在您当前的层次结构中,您可以将SubView置于最前面,这将使图像视图随之出现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Android中将视图隐藏在另一个视图后面

来自分类Dev

隐藏在SwiftUI视图后面的UIViewRepresentable

来自分类Dev

隐藏在另一个元素后面的旋转 CSS 元素

来自分类Dev

SubView层次结构不起作用(SubView隐藏在另一个视图下面)

来自分类Dev

在不同的层次结构中将一个视图动画化为另一个视图

来自分类Dev

Android-隐藏在AppBarLayout后面的视图

来自分类Dev

隐藏在 Recycler 视图后面的相对布局

来自分类Dev

根据另一个视图的可见性隐藏一个视图

来自分类Dev

当另一个被隐藏时拉长视图

来自分类Dev

子视图在将其拖动到滚动视图(父视图)之外时隐藏,并在拖放到另一个视图后出现。

来自分类Dev

对多个视图进行动画处理,其中一个视图先于另一个视图完成

来自分类Dev

下面的视图并覆盖了android中的另一个视图

来自分类Dev

Swift 从另一个类添加子视图

来自分类Dev

从另一个 ViewController 中删除子视图

来自分类Dev

将变换动画从视图应用到另一个视图

来自分类Dev

动画时向上推上方视图,向上滑动另一个视图

来自分类Dev

从另一个而非父视图获取视图

来自分类Dev

从另一个视图访问视图的功能

来自分类Dev

XAML从另一个视图启用/禁用视图

来自分类Dev

如何从另一个视图创建视图?

来自分类Dev

列表视图通向另一个列表视图

来自分类Dev

如何从另一个视图动态修改子视图?

来自分类Dev

UICollectionviewcell徽章隐藏在视图后面

来自分类Dev

UISearchBar隐藏在UISearchController视图的后面

来自分类Dev

尝试让一个子视图使用ui-router调用另一个子视图

来自分类Dev

如何在另一个视图后面接收触摸事件?

来自分类Dev

在另一个视图(不是局部视图)中渲染一个视图

来自分类常见问题

在另一个视图控制器中将视图控制器添加为子视图

来自分类Dev

视图被隐藏在android活动中的其他视图后面

Related 相关文章

  1. 1

    在Android中将视图隐藏在另一个视图后面

  2. 2

    隐藏在SwiftUI视图后面的UIViewRepresentable

  3. 3

    隐藏在另一个元素后面的旋转 CSS 元素

  4. 4

    SubView层次结构不起作用(SubView隐藏在另一个视图下面)

  5. 5

    在不同的层次结构中将一个视图动画化为另一个视图

  6. 6

    Android-隐藏在AppBarLayout后面的视图

  7. 7

    隐藏在 Recycler 视图后面的相对布局

  8. 8

    根据另一个视图的可见性隐藏一个视图

  9. 9

    当另一个被隐藏时拉长视图

  10. 10

    子视图在将其拖动到滚动视图(父视图)之外时隐藏,并在拖放到另一个视图后出现。

  11. 11

    对多个视图进行动画处理,其中一个视图先于另一个视图完成

  12. 12

    下面的视图并覆盖了android中的另一个视图

  13. 13

    Swift 从另一个类添加子视图

  14. 14

    从另一个 ViewController 中删除子视图

  15. 15

    将变换动画从视图应用到另一个视图

  16. 16

    动画时向上推上方视图,向上滑动另一个视图

  17. 17

    从另一个而非父视图获取视图

  18. 18

    从另一个视图访问视图的功能

  19. 19

    XAML从另一个视图启用/禁用视图

  20. 20

    如何从另一个视图创建视图?

  21. 21

    列表视图通向另一个列表视图

  22. 22

    如何从另一个视图动态修改子视图?

  23. 23

    UICollectionviewcell徽章隐藏在视图后面

  24. 24

    UISearchBar隐藏在UISearchController视图的后面

  25. 25

    尝试让一个子视图使用ui-router调用另一个子视图

  26. 26

    如何在另一个视图后面接收触摸事件?

  27. 27

    在另一个视图(不是局部视图)中渲染一个视图

  28. 28

    在另一个视图控制器中将视图控制器添加为子视图

  29. 29

    视图被隐藏在android活动中的其他视图后面

热门标签

归档