簡體   English   中英

IPhone文字發光效果

[英]IPhone Text Glow Effect

在我的iPhone應用程序中,我希望UILabel中的文本發光一秒鍾,然后褪色一秒鍾。 我也想重復這個循環說3到4次。

這可能嗎?

從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>

並鏈接QuartzCoreCoreGraphics框架(感謝評論者指出這一點)。

我發布了一些子類UILabel的示例代碼,使您可以將發光和柔和陰影應用於文本。

http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/

- (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;
}

使用它時我得到了發光效果。

希望能幫助到你。

快樂編碼:)

是。 使用beginAnimation ... commitAnimation,並使用alpha值使ULabel變亮或變暗。 確保UILabel alpha的默認值從0.85開始並亮到1.0然后變暗到0.75,完成所有后,你回到0.85。

還有其他方法可以做到這一點,例如在標簽頂部有一個灰色或黑色的另一個視圖,並使用相同的begin ... commitAnimation將其上的alpha從0更改為0.20左右。

有很多方法可以做到這一點,質量參差不齊。 一種方法是子類化UILabel,並在drawRect方法的coregraphics中實現某種漸變效果。

你也可以玩文字陰影(改變顏色和alpha),看看你是否能想出一個像樣的發光。

最簡單的方法可能是在Photoshop中制作一個透明的發光輪廓圖像並將其放在文本后面,然后像mahboudz建議的那樣...使用coreanimation淡入淡出圖像。

對於那些使用Swift 4的人來說 ,這是我用於多個對象的顏色與它們相同的顏色:

let colorRed: UIColor? = timeLabel.textColor
timeLabel.layer.shadowColor = colorRed?.cgColor
timeLabel.layer.shadowRadius = 4.0
timeLabel.layer.shadowOpacity = 0.9
timeLabel.layer.shadowOffset = CGSize.zero
timeLabel.layer.masksToBounds = false

至於動畫效果,只需為3-4個循環添加一個計時器,並將.shadowOpacity更改為更低的值。

發光時間與發光戒指

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM