首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动画UIView框架不尊重约束?

动画UIView框架不尊重约束?
EN

Stack Overflow用户
提问于 2014-02-27 10:20:07
回答 1查看 258关注 0票数 1

我想要实现的是,当我点击按钮,动画帧被调整大小,这样底线位置不会改变,高度将减少。这部分正在发生。我也希望上面的标签向下移动与框架的上边界和下标签保持不变。因此,我在IB中设置了约束,使下标签的垂直空间为20个像素,优先级为1000。

代码语言:javascript
复制
- (IBAction)tapTap:(id)sender {
    //[self.containerView layoutIfNeeded];
    [UIView animateWithDuration:1.5 animations:^{
        CGRect rect = CGRectOffset(self.containerView.frame, 0, 30);
        rect.size.height -= 30;
        self.containerView.frame = rect;
        //[self.containerView layoutIfNeeded];
    } completion:NULL];
}

较低的标签也是动画,不会停留在原地。我最好的猜测是,在尝试不起作用的layoutIfNeeded之后,我不能在动画框架中依赖约束。如果这是真的,什么才是解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-03 14:53:48

AutoLayout的第一条规则:不要触摸框架(或中心).

看起来你已经找到了答案,但是方法是保持对你想要改变的约束的引用。例如,如果要向上和向下移动视图,则存储一个设置视图垂直位置的垂直约束。现在,当您动画这个约束,视图将与它动画。

代码语言:javascript
复制
self.topConstraint.constant = 50;
// etc...

您可以通过CTRL创建对约束的属性引用--拖动它们就像使用按钮、标签等.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22065451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档