今天周末休息,想好好補補課,無奈,弄了一上午,全部都是半邊拉塊的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
這里面現在僅有我一個人,不過我相信會有更多的博友加入,我們一起進步。
北京今天的天氣很涼爽啊,早上沒有開空調,開了風扇,凍得我的小短腿直哆嗦,現在打開窗戶,小風直來呢~加油。