CAShapeLayer

普通CALayer在被初始化時(shí)是需要給一個(gè)frame值的,這個(gè)frame值一般都與給定view的bounds值一致,它本身是有形狀的,而且是矩形.

CAShapeLayer在初始化時(shí)也需要給一個(gè)frame值,但是,它本身沒有形狀,它的形狀來(lái)源于你給定的一個(gè)path,然后它去取CGPath值,它與CALayer有著很大的區(qū)別

CAShapeLayer有著幾點(diǎn)很重要:

  • 它依附于一個(gè)給定的path,必須給與path,而且,即使path不完整也會(huì)自動(dòng)首尾相接
  • strokeStart以及strokeEnd代表著在這個(gè)path中所占用的百分比
  • CAShapeLayer動(dòng)畫僅僅限于沿著邊緣的動(dòng)畫效果,它實(shí)現(xiàn)不了填充效果

"CyleView.h"

@interface CyleView : UIView
{
    
    CAShapeLayer *layer;
    
}

- (void)strokeStart:(CGFloat)value;
- (void)strokeEnd:(CGFloat)value;

@end

"CyleView.m"

@implementation CyleView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
        layer = [CAShapeLayer layer];
        layer.frame = self.bounds;
        
        UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.frame.size.height / 2.0f,
                                                                               self.frame.size.height / 2.0f)
                                                            radius:self.frame.size.height / 2.f
                                                        startAngle:0
                                                          endAngle:M_PI * 2
                                                         clockwise:YES];
        
        layer.strokeColor   = [UIColor orangeColor].CGColor;   // 邊緣線的顏色
        layer.fillColor     = [UIColor clearColor].CGColor;   // 閉環(huán)填充的顏色
        layer.lineCap       = kCALineCapRound;               // 邊緣線的類型
        layer.path          = path.CGPath;                    // 從貝塞爾曲線獲取到形狀
        layer.lineWidth     = 5.0f;                           // 線條寬度
        layer.strokeStart   = 0.0f;
        layer.strokeEnd     = 0.0f;
        /*
         如果默認(rèn)是一個(gè)圓圈
        layer.strokeStart = 0.0;
        layer.strokeEnd = 1.0;
         
         */
        [self.layer addSublayer:layer];
    }
    return self;
}

- (void)strokeStart:(CGFloat)value
{
    layer.speed = 1;
    layer.strokeStart = value;
}

- (void)strokeEnd:(CGFloat)value
{
    layer.speed = 1;
    layer.strokeEnd = value;
}


@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末营搅,一起剝皮案震驚了整個(gè)濱河市云挟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌转质,老刑警劉巖园欣,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異休蟹,居然都是意外死亡沸枯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門赂弓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绑榴,“玉大人,你說(shuō)我怎么就攤上這事盈魁∠柙酰” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)赤套。 經(jīng)常有香客問我飘痛,道長(zhǎng),這世上最難降的妖魔是什么容握? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任宣脉,我火速辦了婚禮,結(jié)果婚禮上剔氏,老公的妹妹穿的比我還像新娘塑猖。我一直安慰自己,他們只是感情好谈跛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布羊苟。 她就那樣靜靜地躺著,像睡著了一般币旧。 火紅的嫁衣襯著肌膚如雪践险。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天吹菱,我揣著相機(jī)與錄音,去河邊找鬼彭则。 笑死鳍刷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的俯抖。 我是一名探鬼主播输瓜,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼芬萍!你這毒婦竟也來(lái)了尤揣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柬祠,失蹤者是張志新(化名)和其女友劉穎北戏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漫蛔,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嗜愈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莽龟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蠕嫁。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖毯盈,靈堂內(nèi)的尸體忽然破棺而出剃毒,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布赘阀,位于F島的核電站陪拘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纤壁。R本人自食惡果不足惜左刽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酌媒。 院中可真熱鬧欠痴,春花似錦、人聲如沸秒咨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)雨席。三九已至菩咨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陡厘,已是汗流浹背抽米。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糙置,地道東北人云茸。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谤饭,于是被迫代替她去往敵國(guó)和親标捺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容