zoukankan      html  css  js  c++  java
  • 如何解决IOS 动画中 Autolayout 与View Transforms的冲突

    IOS 的动画放大与缩小,并非按照找它的中心点放大和缩小,而是左上角 。我分析了下原来是Autolayout 与View Transforms的冲突造成的。

     

    - (void) addSubviewWithZoomInAnimation:(UIView*)view duration:(float)secs option:(UIViewAnimationOptions)option
    {
    // first reduce the view to 1/100th of its original dimension
    CGAffineTransform trans = CGAffineTransformScale(view.transform, 0.01, 0.01);
    view.transform = trans;    // do it instantly, no animation
    [self addSubview:view];
    // now return the view to normal dimension, animating this tranformation
    [UIView animateWithDuration:secs delay:0.0 options:option
    animations:^{
    view.transform = CGAffineTransformScale(view.transform, 100.0, 100.0);
    }
    completion:nil];    
    }
    
    - (void) removeWithZoomOutAnimation:(float)secs option:(UIViewAnimationOptions)option
    {
    [UIView animateWithDuration:secs delay:0.0 options:option
    animations:^{
    self.transform = CGAffineTransformScale(self.transform, 0.01, 0.01);
    }
    completion:^(BOOL finished) { 
    [self removeFromSuperview]; 
    }];
    }



     

    解决方案: 

    Disable auto layout:

    self.imageView.translatesAutoresizingMaskIntoConstraints = YES;

     

    【1】

    http://stackoverflow.com/questions/12943107/how-do-i-adjust-the-anchor-point-of-a-calayer-when-auto-layout-is-being-used/14105757#14105757

  • 相关阅读:
    四、面向对象分析和设计全流程概述
    三、三大核心特征-继承
    二、三大核心特征-多态
    [第三章]一、三大核心特征-封装
    四、抽象类
    三、接口
    二、对象
    [第二章]一、类
    六、面向对象的迷思
    五、面向对象的应用范围
  • 原文地址:https://www.cnblogs.com/rubick/p/3694719.html
Copyright © 2011-2022 走看看