iOS CGContextRef 畫一條直線,僅僅是畫一條直線

來源:互聯網
上載者:User

標籤:

   今天周末休息,想好好補補課,無奈,弄了一上午,全部都是半邊拉塊的demo,有一種深深的挫敗感。

  中午睡醒一覺後,又看了一集“奔跑吧兄弟”,然後一下午時間就過去了。

  仔細一想,應該是我的補課方法不對:要補的東西太多了,必須得從大處入手,如果從小處入手,那得花老鼻子的時間來弄了。

  然後,那就從困擾了好久的畫線開始吧。

 

  前兩天做項目,頭兒讓我用畫線實現一個功能,他一說畫線我就打怵,因為對這一方面不是很熟,這幾天鼓搗了幾下子,但是每次都是做著做著這個,又發現了另外一個不會的東東,轉戰去其他戰場了,等反應過來時,時間已經過去了,畫線這個功能還是沒有解決,深深的挫敗感又襲了一身,也沒有心情弄了,遂洗洗就去睡了,第二天周而復始。

 

  現在發現了自己的戰略不對,所以要及時改正啊!

 

  下面就好好總結一下畫線的基本功,如果其他博友看到,說不準也能指點迷津了!

  

寫在前面:

1.首先必須知道:如果要畫線,則必須在drawRect方法裡面寫,也就是要重寫這個方法。

2.必須知道內容相關的意思,我認為的就是拿到當前view的畫布。

 

這幾個地方明了了,就不難了。

1.首先,應該建立一個project

2.在project裡面,建立一個繼承於UIView的view,我們定義為LineView;

3.重寫init方法

  3.1 在這個裡面,我們要定義一下當前view的backgroundColor,因為預設是黑色,我們將之設定為白色。

  

-(instancetype)init{

    if (self = [super init]) {

        self.backgroundColor = [UIColor whiteColor];

    }

    return self;

}

 4.重寫drawRect 方法

   4.1 要畫一條線,我們必須得先設定好畫布

CGContextRef context = UIGraphicsGetCurrentContext();

  4.2 設定這條線的起點和終點:我們從螢幕的左上方--螢幕的右下角

CGContextMoveToPoint(context, 0, 0);//先確立一個開始的點

CGContextAddLineToPoint(context, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height);//設定終點。如果多於兩個點時,可以重複調用這個方法,就會有多個折線

 前面的context代表的是基於當前的畫布,後面的兩個參數,代表當前點的座標。

  4.3 設定當前線的寬度

CGContextSetLineWidth(context, 5.0);//後面的數值越大,線越粗

  4.4 設定當前線的顏色

CGFloat components[] = {221.0/255,221.0/255,221.0/255,1.0f};

CGContextSetStrokeColor(context, components);

components就是用

[UIColor colorWithRed:<#(CGFloat)#> green:<#(CGFloat)#> blue:<#(CGFloat)#> alpha:<#(CGFloat)#>]

將這個方法分離出來,分別填入數組內,範圍是從0.0-1.0,不可以越界。

  4.5 串連這兩個點

CGContextStrokePath(context);

這樣,這條簡單的直線就畫完了。

  

  但這樣還是不夠,因為我們還沒有將它貼在ViewController裡面。

在ViewController.m中的viewDidLoad方法裡面,我們將它添加進去:

- (void)viewDidLoad {

    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];

 

    LineView * lineView = [[LineView alloc]init];

    lineView.frame = self.view.bounds;

    [self.view addSubview:lineView];

}

運行程式,這條淡灰色的線就粗來了~~~功能雖然簡單,但是,能完整的寫出來,也算有一種小小的成就感了。當然,這隻是一個小小的開始,更複雜的任務,還在後面等著我們呢!

 

剛才建立了一個群:iOS進階學習交流群

QQ群號:461093715  

這裡面現在僅有我一個人,不過我相信會有更多的博友加入,我們一起進步。

 

北京今天的天氣很涼爽啊,早上沒有開空調,開了風扇,凍得我的小短腿直哆嗦,現在開啟窗戶,小風直來呢~加油。

 

iOS CGContextRef 畫一條直線,僅僅是畫一條直線

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.