【code_小馬】iOS Layer用來顯示文字

漸變色神馬的 2017-03-12 下午3.11.53.png

圖片中:
第一個(gè)是用CATextLayer實(shí)現(xiàn)的;
第二個(gè)是用UILabel和CAGradientLayer實(shí)現(xiàn)的文字的漸變色;
第三個(gè)是用CAGradientLayer實(shí)現(xiàn)的;

CALayer篇:

用的是文章CAGradientLayer繪制漸變色中技術(shù),但是這次的目的主要講一下CATextLayer,以及CALayer的mask這個(gè)屬性;


//CATextLayer 顯示文字
-(void)ygCATextLayer
{
    CATextLayer * ygTextLayer = [CATextLayer layer];
    ygTextLayer.frame           = CGRectMake(20, 64+100, 300, 35);
    ygTextLayer.backgroundColor = [UIColor yellowColor].CGColor;
    ygTextLayer.string = @"【code_小馬】的CATextLayer";
    //字體的名字
    ygTextLayer.font = (__bridge CFTypeRef _Nullable)(@"HiraKakuProN-W3");
    //字體的大小
    ygTextLayer.fontSize = 18.f;
    //字體的對(duì)齊方式
    ygTextLayer.alignmentMode = kCAAlignmentCenter;
    //字體的顏色
    [self.view.layer addSublayer:ygTextLayer];
    ygTextLayer.foregroundColor =
    [UIColor redColor].CGColor;
// 最主要的特點(diǎn)是CATextLayer可以被NSMutableAttributedString直接附值。
//而NSMutableAttributedString有可以最自己內(nèi)容作出顏色以及大小的調(diào)整。
    

}


//漸變色文字
-(void)ygCAGradientLayer
{
    
    UILabel * yg_label = [[UILabel alloc]init];
    yg_label.frame = CGRectMake(20, 160, 300, 30);
    yg_label.text = @"【code_小馬】的CAGradientLayer";
    yg_label.font = [UIFont systemFontOfSize:18.0];
    [self.view addSubview:yg_label];
    
    CAGradientLayer *yg_gradientLayer = [CAGradientLayer layer];
    NSInteger count = 20;
    NSMutableArray *colors = [NSMutableArray array];
    NSMutableArray *locations = [NSMutableArray array];
    for (NSInteger i = 0; i < count ; i ++) {
        UIColor *color = [UIColor colorWithRed:arc4random_uniform(255)/255.0 green:arc4random_uniform(255)/255.0 blue:arc4random_uniform(255)/255.0 alpha:1];
        [colors addObject:(__bridge id)color.CGColor];
    
        [locations addObject:@(i /(CGFloat)count)];
    }
    //顏色數(shù)組
    yg_gradientLayer.colors = colors;
    //可以不設(shè)置
    yg_gradientLayer.locations = locations;
    //startPoint endPoint 確定條紋方向 不設(shè)置 默認(rèn)水平默認(rèn)值[.5,0]和[.5,1]
    yg_gradientLayer.startPoint = CGPointMake(0, 0);
    yg_gradientLayer.endPoint = CGPointMake(1, 1);
    
    yg_gradientLayer.type = kCAGradientLayerAxial;
    
    yg_gradientLayer.bounds = CGRectMake(0, 0, 400, 400);
    yg_gradientLayer.position = CGPointMake(200, 340);
    
    //用label的layer裁剪gradientLayer
    yg_gradientLayer.mask = yg_label.layer;
    [self.view.layer addSublayer:yg_gradientLayer];
    
}

//漸變色的線
-(void)ygLineLayer
{
    
    CAGradientLayer *yg_gradientLayer = [CAGradientLayer layer];
    NSInteger count = 20;
    NSMutableArray *colors = [NSMutableArray array];
    NSMutableArray *locations = [NSMutableArray array];
    for (NSInteger i = 0; i < count ; i ++) {
        UIColor *color = [UIColor colorWithRed:arc4random_uniform(255)/255.0 green:arc4random_uniform(255)/255.0 blue:arc4random_uniform(255)/255.0 alpha:1];
        [colors addObject:(__bridge id)color.CGColor];
        
        [locations addObject:@(i /(CGFloat)count)];
    }
    //顏色數(shù)組
    yg_gradientLayer.colors = colors;
    //可以不設(shè)置
    yg_gradientLayer.locations = locations;
    //startPoint endPoint 確定條紋方向 不設(shè)置 默認(rèn)水平默認(rèn)值[.5,0]和[.5,1]
    yg_gradientLayer.startPoint = CGPointMake(0, 0);
    yg_gradientLayer.endPoint = CGPointMake(1, 1);
    
    //這一句是廢話——>因?yàn)椋簍ype默認(rèn)值是kCAGradientLayerAxial,表示按像素均勻變化。除了默認(rèn)值也無其它選項(xiàng)。
    yg_gradientLayer.type = kCAGradientLayerAxial;
    
    yg_gradientLayer.frame = CGRectMake(0, 360, [UIScreen mainScreen].bounds.size.width , 50);
    
    [self.view.layer addSublayer:yg_gradientLayer];
    
}


/*
 *  Layer.mask屬性用法
 *  mask (繼承與CALayer)
 */ 

//用label的layer裁剪gradientLayer
   yg_gradientLayer.mask = yg_label.layer;

    [greenLayer addSublayer: whiteLayer];
    [greenLayer addSublayer: blueLayer];
    [greenLayer addSubLayer: purpleLayer]

    greenLayer.mask = purpleLayer;
原圖
    [greenLayer addSublayer: whiteLayer];
    [greenLayer addSublayer: blueLayer];

添加一個(gè)紫色的Layer.png
 [greenLayer addSubLayer: purpleLayer]

用紫色的Layer 裁剪綠Layer
  greenLayer.mask = purpleLayer;

【code_小馬】

我們是工程師 ——加油 !

美文分享

晌午時(shí)光

【第十三集】

不就帶了兩個(gè)馬子嘛!干嗎那么緊張!”濱仔不屑地說?!  澳闵倭_嗦!”Linda匆忙跑遠(yuǎn)?!  斑@就是傳說中的東歌??!哇塞!我沒想到真的能進(jìn)來!阿瞳!你看耶!那人穿了三個(gè)鼻環(huán)!”胖妹興奮得大呼小叫的,未顯示出太多的詫異,她觀察著人們對(duì)如風(fēng)恭敬的態(tài)度,心中默默盤算。  “我還要一份翅皇羹!”胖妹拿著menu,她已經(jīng)點(diǎn)了很多?!  啊〖t莓之戀’,一份乳酪蛋糕,謝謝?!卑⑼珜?duì)侍者說“小紅莓之戀’,拿破侖餅?!比顼L(fēng)目光一直放在阿瞳身上?! “⑼⑽⒁恍Γ骸翱床怀鰜恚憔谷幌矚g吃甜食!”  如風(fēng)不自然的低下頭,他點(diǎn)了一支煙,把煙盒擺在了左邊,與打火機(jī)形成了個(gè)十字?! “⑼沉艘谎郏攘丝陲嬃??!  跋娜绠嬍悄闩褑幔俊迸置靡贿叴蟪砸贿呎f,“她好靚啊!”  “不是,”如風(fēng)面色一變,他長吐了一口煙圈,有些落寞的說:“她是我姐姐?!薄  巴郏∈墙憬?,你們長得不像啊。不過都是俊男靚女!”胖妹說?! ∪顼L(fēng)臉色更加難看?!  安皇前伞!卑⑼蝗婚_口?! ∷⒅顼L(fēng)的眼睛說:“你們不是親姐弟吧?!薄 ∨置皿@訝的望著阿瞳,阿瞳臉上浮現(xiàn)出狡黠的笑容?! ∪顼L(fēng)目光中露出一絲寒氣,他突然拔出槍抵住阿瞳的額頭。  “說,你是到底是誰!”  胖女孩塞滿食物的嘴大大的張開,她不可思議的望著如風(fēng),沒敢叫出聲音?! “⑼樕n白,她深吸了一口氣說:)“你不用一再的試探我了。我不知道你把我當(dāng)成了什么人,但我絕對(duì)不是他們中的一員!我,蘇瞳,只是惠仁中學(xué)2年3班的一名學(xué)生而已!”  阿瞳從書包里掏出學(xué)生證遞到如風(fēng)面前?! ∪顼L(fēng)看著證件上那張燦爛的笑臉微微一愣,他收起槍說:“對(duì)不起,你們隨意玩吧。”  如風(fēng)走了出去。  胖妹咽下口中的食物,使勁拍著胸口說:“他,他剛才拿的是槍吧????是真的槍吧?”  阿瞳的腿微微發(fā)顫,她舉起“小紅莓之戀”一飲而盡,自言自語:“他們比我想的還要復(fù)雜啊……”  如風(fēng)一出門便迎來了程秀秀?!  霸趺矗€是放棄你‘姐姐’了嗎?!”程秀秀冷笑著說,“那兩個(gè)女孩,比較喜歡哪一個(gè)呢?”  “最近不太平,有人在暗暗動(dòng)手腳,”如風(fēng)說,“她們跟她接觸,我怕她出事?!薄 〕绦阈闼闪丝跉?,又酸酸的說:“就那么在乎她嗎?”   如風(fēng)沒有回答,他頓了頓說:“秀秀,算了吧?!薄  拔也?!”程秀秀望著如風(fēng)的背影狠狠的甩頭而去?!  跋耐瑢W(xué)!”在圖書館,一個(gè)文質(zhì)彬彬的男孩笑著喊我?!  笆裁词??”我望著這張陌生而英俊的臉有些緊張的說?! ∫呀?jīng)很久很久,除了如風(fēng),沒有人跟我說過話了?! ∷眠^我手里借的書,說:“肖伯納?你也喜歡戲劇嗎?”  “還好?!彼匀坏膽B(tài)度仿佛我們是故交,這讓我略略放松。.........

點(diǎn)擊閱讀文章第十二集

點(diǎn)擊閱讀文章第十四集
文章后續(xù)更新中,喜歡請關(guān)注哦 ??????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容