iphone - 使用自动布局时动画 View 宽度

标签 iphone ios objective-c xcode autolayout

我正在使用自动布局来定位自定义进度条(它只是一个带有背景颜色的 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];
}];

关于iphone - 使用自动布局时动画 View 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18764498/

相关文章:

iphone - 在 Xcode 4 中管理库

objective-c - UINavigationController 推送 View 和显示工具栏有奇怪的工具栏动画

iphone - 通过iPhone编程发送短信?

ios - 如何更改 UICollectionViewCell 初始布局位置?

ios - 如何从单元格中另一个项目的手势获取单元格引用

ios - 我对如何绘制空心圆角矩形感到很困惑。我怎样才能做到这一点?

ios - 如何成功更新用户资料

iphone - 如何只允许单个 UIViewController 在横向和纵向方向上旋转?

ios - 当用户触摸 UIBarButtonItem 时,在 tableView 上显示 UISearchBar

iphone - 对于非续订订阅,注册应该始终是可选的吗?