iOS如何动画UIView约束更改作为属性赋值的副作用?

时间:2014-09-16 19:30:28

标签: ios objective-c animation uiview autolayout

我有一个视图,根据视图中UILabel中的行数自动调整它的高度。还有另一个视图,其高度固定为与带标签的视图相等。

我想通过将长文本设置到标签来设置高度变化的动画,从而更改行数并导致自动布局约束重新计算高度。这个新高度也会改变第二个视图的高度。 如何为属性分配的副作用发生自动布局更改动画?

我尝试了这个,但它不起作用:

[UIView animateWithDuration:0.3 animations:^{

    //I want the side effect of this assignment to be animated
    self.viewWithLabel.title = @"This long title will change the view height and cause layout change";

}]; 

1 个答案:

答案 0 :(得分:0)

请参阅documentation

尝试:

- (void)viewDidAppear:(BOOL)animated {
    [self.view layoutIfNeeded];
    [UIView animateWithDuration:1.0 animations:^{

        self.viewWithLabel.title = @"This long title will change the view height and cause layout change";

        [self.view layoutIfNeeded];
    }];
}

我想你也希望yourTextLabel.clipToBounds = YES 如果您想要更高级的效果,请参阅this question