我想实现淡入/淡出矩形或文本的效果。我在 UIVIew 的 drawRect: 方法中调用 CGContextFillRect 或 CGContextShowText。我想知道是否有一种方法可以在不使用 UIView 支持的情况下实现动画(即 [UIView beginAnimations::]。我想要实现的预期效果类似于 Microsoft 的 bing 搜索引擎中的效果,就像那些小黑色方块淡入/当您在网页上移动时淡出。提前致谢!
为什么不想使用UIView的动画块?用动画来改变视图的不透明度(UILabel 或其他)非常简单。例如,以下代码将在 0.5 秒的持续时间内淡出给定视图:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
viewToFadeOut.alpha = 0.0f;
[UIView commitAnimations];
要淡入,只需将 alpha 值 0.0f 替换为 1.0f 即可。
您可以使用手动构造的 CABasicAnimation 来操作 UIView 的图层来执行相同的操作:
CABasicAnimation *fadeOutAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeOutAnimation.duration = 0.5f;
fadeOutAnimation.removedOnCompletion = NO;
fadeOutAnimation.fillMode = kCAFillModeForwards;
fadeOutAnimation.toValue = [NSNumber numberWithFloat:0.0f];
[viewToFadeOut.layer addAnimation:fadeOutAnimation forKey:@"animateOpacity"];
如果您只想淡入/淡出视图周围的边框,请尝试对 UIView 层的边框 Color 属性进行动画处理(与上面的 CABasicAnimation 相同,仅替换opacity
with borderColor
和 CGColor 的 toValue 转换为id
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)