【发布时间】:2015-06-18 14:43:53
【问题描述】:
当有人按住视图时,我想在视图上淡出一些 UILabel。
我试图通过将文本的 alpha 值从 1.0 更改为 0.5 来执行淡入淡出,然后在释放触摸时再次返回。
这是我的代码:
[UIView transitionWithView:self.view duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations: ^ {
[someImageView removeFromSuperview];
[[self someText] setAlpha:0.5];
} completion:nil];
在此块中删除的 imageView 动画效果很好,但是,文本的 alpha 变化没有动画,它只是在动画完成后立即发生,即当 imageView 动画并被删除时,文本仍然存在在 alpha 1.0,然后当动画完成时,文本 alpha 突然从 1.0 变为 0.5,没有动画。
我这样做是错的还是我应该这样做的其他方式?
我能想到的唯一另一种方法是复制 UILabel 以便有两个,一个带有 alpha 1.0,一个带有 alpha 0.5。然后我可以淡入隐藏原来的 UILabel 并淡入半透明的 UILabel ,但这似乎是一个可怕的解决方案。
【问题讨论】:
-
你试过用
animateWithDuration代替transitionWithView吗? -
刚刚尝试过这个:
[UILabel animateWithDuration:0.3 animations: ^ { [[self someText] setAlpha:0.5]; } completion:nil];但仍然有同样的问题。你是这个意思吗?
标签: ios objective-c animation uilabel alpha