我正在编写一个 iOS 7 应用程序,我有一个带有标签的矩形。标签居中对齐,并被创建为与视图相同的大小(为了增加大小时的简单性)。
所需的效果是单击时将视图动画化为全尺寸,并且标签始终居中。
我目前已经尝试过:
- 将标签的顶部、左侧、底部和右侧约束设置为 0
- 将标签的高度和宽度设置为初始大小的视图,并将其与视图动画一起设置为完整大小
- 将标签的顶部和左侧约束设置为 0 并将尺寸设置为完整尺寸
这些都不会产生所需的输出。每次标签似乎只是在视图开始动画之前捕捉到它的最终大小。
这是我的代码:
_viewHeightConstraint.constant = self.view.frame.size.height;
_viewWidthConstraint.constant = self.view.frame.size.width;
_viewTopConstraint.constant = 0;
_viewLeftConstraint.constant = 0;
_labelWidthConstraint.constant = self.view.frame.size.width;
_labelHeightConstraint.constant = self.view.frame.size.height;
[self.view needsUpdateConstraints];
[UIView animateWithDuration:1.5f
animations:^(void) {
[self.myView layoutIfNeeded]; //perform relayout of view containing label before relayout of entire view
[self.view layoutIfNeeded];
}];
我不确定我是否提供了所有必要的东西,因为我还是自动布局的新手。但是,所需的效果是在中心的标签保持居中时动画到全尺寸的视图。