我正试图将UILabel向左移动并为机芯设置动画。 UILabel是从故事板创建的,具有以下约束:
但是如果我试图让尾随空间恒定等于150,而不是20来将它移动到左边,它会向左反弹,然后回到中间。所以我把左前导约束的优先级降低到了900,但同样的事情仍然发生了。
所以我试过了:
self.textToReadLabel.transform = CGAffineTransformMakeTranslation(-500.0, 0.0);
移动它,但是如果我使用动画,它会滑离屏幕,然后重新滑动,然后停留在它应该......所有那些戏剧之后的地方。
我将如何实现这一目标?
self.textHorizontalPlacementConstraint.constant = 150.0;
self.textHorizontalPlacementConstraint2.constant = -110.0;
[UIView animateWithDuration:1.0 animations:^{
[self.view layoutIfNeeded];
}];
CATransition *animation = [CATransition animation];
animation.duration = 0.5;
animation.type = kCATransitionFade;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.textToReadLabel.layer addAnimation:animation forKey:@"changeTextTransition"];
// Change the text
self.textToReadLabel.text = @"text";
}
答案 0 :(得分:0)
要动态更改布局,您需要更改constant
中的NSLayoutConstraint
,然后致电:
self.textHorizontalPlacementConstraint.constant = 150.0;
self.textHorizontalPlacementConstraint2.constant = -110.0;
[UIView animateWithDuration:1.0 animations:^{
[self.view layoutIfNeeded];
}];
还要确保您的约束是一致的。因此,如果增加trailingSpace也会减少leadingSpace。