ios 繪制虛線 CGContextSetLineDash的使用

分類:編程 時間:2017-02-18

畫虛線需要用到函數:

CGContextSetLineDash

此函數需要四個參數:

  • context – 這個不用多說
  • phase - 稍後再說
  • lengths – 指明虛線是如何交替繪制,具體看例子
  • count – lengths數組的長度
  1. CGContextRef context =UIGraphicsGetCurrentContext();  
  2. CGContextBeginPath(context);  
  3. CGContextSetLineWidth(context, 2.0);  
  4. CGContextSetStrokeColorWithColor(context, [UIColorwhiteColor].CGColor);  
  5. float lengths[] = {10,10};  
  6. CGContextSetLineDash(context, 0, lengths,2);  
  7. CGContextMoveToPoint(context, 10.0, 20.0);  
  8. CGContextAddLineToPoint(context, 310.0,20.0);  
  9. CGContextStrokePath(context);  
  10. CGContextClosePath(context);  

lengths的值{10,10}表示先繪制10個點,再跳過10個點,如此反復,如圖:


如果把lengths值改為{10, 20, 10},則表示先繪制10個點,跳過20個點,繪制10個點,跳過10個點,再繪制20個點,如此反復,如圖:

註意count的值等於lengths數組的長度

phase參數表示在第一個虛線繪制的時候跳過多少個點,舉例說明:

  1. float lengths[] = {10,5};  
  2. CGContextSetLineDash(context, 0, lengths, 2);    
  3. CGContextMoveToPoint(context, 0.0, 20.0);    
  4. CGContextAddLineToPoint(context, 310.0, 20.0);     
  5. CGContextStrokePath(context);  
  6.                           
  7. CGContextSetLineDash(context, 5, lengths, 2);  
  8. CGContextMoveToPoint(context, 0.0, 40.0);    
  9. CGContextAddLineToPoint(context, 310.0, 40.0);  
  10. CGContextStrokePath(context);             
  11.                                               
  12. CGContextSetLineDash(context, 8, lengths, 2);     
  13. CGContextMoveToPoint(context, 0.0, 60.0);             
  14. CGContextAddLineToPoint(context, 310.0, 60.);             
  15. CGContextStrokePath(context);   
如圖顯示:


由於lengths值為{10,5},第一條線就是繪制10,跳過5,反復繪制。

第二條線的phase值為5,則首先繪制【10減去5】,再跳過5,繪制10,反復繪制。

第三條給也如此,先繪制2,再跳過5,如此反復。


Tags: count 如何

文章來源:


ads
ads

相關文章
ads

相關文章

ad