加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 使用自动布局时动画视图宽度

发布时间:2020-12-14 18:03:34 所属栏目:百科 来源:网络整理
导读:我正在使用自动布局来定位自定义进度条(它只是一个带背景颜色的UIView).我没有使用正确的进度条,因为我不想在UIView就足够的时候完全自定义它. 无论如何,我告诉XCode将进度条放在左边,距离底部一定距离.这可以正确定位,但是当我为宽度设置动画时没有任何反应
我正在使用自动布局来定位自定义进度条(它只是一个带背景颜色的UIView).我没有使用正确的进度条,因为我不想在UIView就足够的时候完全自定义它.

无论如何,我告诉XCode将进度条放在左边,距离底部一定距离.这可以正确定位,但是当我为宽度设置动画时没有任何反应.如果我创建一个新的UIVIew然后动画它正常工作.约束是否阻止了动画的制作?根本没有约束宽度

[UIView animateWithDuration:startingGameSeconds delay:0.0 options:UIViewAnimationOptionCurveLinear
                 animations:^(void) {
                     progressBar.frame = CGRectMake(progressBar.frame.origin.x,progressBar.frame.origin.y,320,progressBar.frame.size.height);

                 }
                 completion:^(BOOL finished){
                 }];

解决方法

当您使用自动布局时,您不应再使用setFrame:方法.如果要为“框架”设置动画,则必须为约束设置动画.我想您的自动布局约束是在Interface Builder中定义的.首先,确保在进度条中添加了宽度布局约束.接下来,为此宽度布局约束创建IBOutlet.您现在可以像这样设置约束的动画:

self.progressBarWidthLayoutConstraint.constant = 320;

[UIView animateWithDuration:1 animations:^{
    [self.view layoutIfNeeded];
}];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读