让2个动画中自定义视图(Make 2 animations in Custom View)

2019-10-18 17:46发布

进出口创建一个自定义视图,它包含了诸如刷新方法,* LayoutSubviews *,下面这个教程

我想是动画增长的一个标签,它的整个宽度,然后回到0宽度。 即时通讯使用此代码中的“刷新”的方法:

[UIView animateWithDuration:1.3 animations:^{
        CGRect frame = CGRectMake(50, 15, 140, 20);
        [labelFav setFrame:frame];
    } completion:^(BOOL finished) {
        //[labelFav setHidden:YES];
        [UIView animateWithDuration:1.3 animations:^{
            CGRect frame = CGRectMake(50, 15, 0, 20);
            [labelFav setFrame:frame];
        }];

    }];

该代码适用于任何其他的观点,但由于这是由于某种原因结束块不执行自定义视图。 什么情况是,它只做第一个块。 我在“完成”块设置断点,它停在那里,但动画犯规发生。 我试图setHidden标签,仍然它不发生。

有任何想法吗?

Answer 1:

删除自动布局从你Interface Builder的主屏幕。 你的看法可能会改变它的框架,但自动布局(可能)迫使它在其他地方...



Answer 2:

另一种方式来解决问题。 测试。

[UIView animateWithDuration:1.3 animations:^{

    CGRect frame = CGRectMake(50, 15, 140, 20);
    [labelViewForFav setFrame:frame];

} completion:^(BOOL finished) {

   [UIView animateWithDuration:1.3 animations:^{

                CGRect frame = CGRectMake(50, 15, 0, 20);
                [labelViewForFav setFrame:frame];

        } completion:^(BOOL finished) {

        }];
}];

问题是,当你做的UILabel宽度小于目前的宽度。 动画做得不好。 动画不可见的只是跳到最后一帧。

解决它把你的标签,在视图中改变这一观点的大小,它会正常工作。



文章来源: Make 2 animations in Custom View