我想将一个UILabel向左移动并以动画的形式呈现出来。该UILabel是从故事板创建的,并具有以下约束条件:
但如果我尝试将尾随空间常数设置为150而不是20来将其向左移动,它会奇怪地弹回到左侧一秒钟,然后又回到中间。因此,我将左侧引导约束的优先级降低到900,但仍然发生了同样的事情。
所以我尝试了:
(注:此视频为it技术相关内容,展示其外观)
但如果我尝试将尾随空间常数设置为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";
}
视频演示:
(注:此视频为it技术相关内容,展示其外观)
animator
代理 :( 如果你在常量设置和代码块之间加入[self.view setNeedsUpdateConstraints];
会发生什么呢? - Brad Allred