在我的iPhone应用程序中,我希望UILabel中的文本发光一秒,然后褪色一秒;我也想重复这个循环说3到4次。
这可能吗?
答案 0 :(得分:39)
从3.2开始,你可以直接支持SDK中的阴影。
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
使用参数:
label.layer.shadowRadius = 3.0;
label.layer.shadowOpacity = 0.5;
为了避免阴影被标签bouds裁剪:
label.layer.masksToBounds = NO;
别忘了
#include <Quartzcore/Quartzcore.h>
并链接到QuartzCore
或CoreGraphics
框架(感谢评论者指出这一点)。
答案 1 :(得分:14)
我发布了一些子类UILabel的示例代码,使您可以将发光和柔和阴影应用于文本。
http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/
答案 2 :(得分:2)
是。使用beginAnimation ... commitAnimation,并使用alpha值使ULabel变亮或变暗。确保UILabel的alpha的默认值从0.85开始并变亮到1.0然后变暗到0.75,完成所有后,你回到0.85。
还有其他方法可以做到这一点,例如在标签顶部有一个灰色或黑色的另一个视图,并使用相同的begin ... commitAnimation将其上的alpha从0更改为0.20左右。
答案 3 :(得分:2)
有很多方法可以做到这一点,质量各异。一种方法是子类UILabel,并在drawRect方法的coregraphics中实现某种渐变效果。
你也可以使用文字阴影(改变颜色和alpha),看看你是否能想出一个像样的光芒。
最简单的方法可能是在Photoshop中制作透明的发光轮廓图像并将其放在文本后面,然后像mahboudz建议的那样......使用coreanimation淡入淡出图像。
答案 4 :(得分:2)
- (UILabel *) setUpGlowLabelWithFrame: (CGRect) frame fontSize: (int)fontSize {
UILabel* label = [[UILabel alloc] initWithFrame:frame];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:fontSize];
label.textColor = [UIColor whiteColor];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
label.textAlignment = UITextAlignmentCenter;
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
label.layer.masksToBounds = NO;
label.layer.shadowRadius = 0.5f;
label.layer.shadowOpacity = 0.95;
label.numberOfLines = 2;
label.tag = 20;
return label;
}
使用时我得到了发光效果。
希望它有所帮助。
快乐编码:)
答案 5 :(得分:1)