ios - 如何判断CALayer正在做动画?

 Aime--Gemini 发布于 2022-10-27 20:38

场景:存在一个UILabel实例,对它做缩放,如何清除知道他正在缩放?

3 个回答
  • 个人感觉 用label的bool属性记录最好

    2022-10-29 04:15 回答
  • -(BOOL)isAnimated
    {
        BOOL animated = self.layer.animationKeys.count > 0;
        
        for (UIView *subView in self.subviews) {
            
            animated |= subView.isAnimated;
        }
        
        return animated;
        
    }
    2022-10-29 04:19 回答
  • 没有找到能判断是否正在执行动画的相关的API,只有下面的方法,通过判断isAnimating 来判断

    // 设置初始值(最好使用全局或者属性)
        __block BOOL isAnimating =YES;
        self.transform = CGAffineTransformMakeScale(6, 6);
        [UIView animateKeyframesWithDuration:0.333 delay:0 options:0 animations:^{
            
            
            self.transform = CGAffineTransformMakeScale(1, 1);
        } completion:^(BOOL finished) {
            // 成功回调改为NO
            isAnimating = NO;
            completion();
        }];
    2022-10-29 04:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有