zoukankan      html  css  js  c++  java
  • NSLayoutConstraint的动画

    - (void)_show:(BOOL)show
    {
        [self.superview layoutIfNeeded];
        CGFloat selfTop_SuperBottom = show ? -self.frame.size.height : 0;
        for (NSLayoutConstraint *constraint in self.superview.constraints)
        {
            if (constraint.firstItem == self && constraint.firstAttribute == NSLayoutAttributeTop
                && constraint.secondItem == self.superview && constraint.secondAttribute == NSLayoutAttributeBottom)
            {
                constraint.constant = selfTop_SuperBottom;
                break;
            }
        }
       
        [UIView animateWithDuration:0.50 animations:^{
            [self.superview layoutIfNeeded];
        } completion:^(BOOL finished) {
           
        }];
    }

    1.如果你使用的是AutoLayout来进行布局,并且又要使用UIView的动画的话,上面截图的代码可以帮助你解决这个问题.

    2.特别提醒:注意代码的3行.如果不添加该行代码,下边的代码会在第一次时产生一个"诡异"的效果.添加该行的意思就是:首先布局一下,以免没有完成的布局,影响下边的动画效果.

  • 相关阅读:
    并发编程-操作系统简史,多道技术
    python下的excel表格处理 内含面试题
    epoll模型的探索与实践
    nginx搭建静态网站
    面向对象基础
    python+Django 下JWT的使用
    linux的history命令
    携程apollo配置中心Quick Start
    redis哨兵
    redis的主从复制
  • 原文地址:https://www.cnblogs.com/Sunnyheart/p/6229450.html
Copyright © 2011-2022 走看看