<p id="qitwt"></p>
      1. <object id="qitwt"><strong id="qitwt"></strong></object>
        <p id="qitwt"></p>
        <li id="qitwt"></li>
        <p id="qitwt"><del id="qitwt"><xmp id="qitwt"></xmp></del></p>
        <p id="qitwt"><label id="qitwt"></label></p>
      2. <acronym id="qitwt"></acronym>
        <p id="qitwt"></p>
        免費開源的iOS開發學習平臺

        繪圖CoreGraphics:4-常見圖形的繪制方法

        本節我們通過一些實際的例子來學習下,如何使用CoreGraphics框架來對視圖樣式進行繪制,包括繪制直線、矩形和橢圓形。

        準備工作

        使用CoreGraphics框架是針對視圖對象進行繪制,因此,我們需要首先新建一個自定義視圖類,繼承自UIView

        在storyboard中,設置主控制器的View為MYView類

        在MYView.m中,添加drawRect:方法,在該方法中添加繪圖相關的代碼

        #import "MYView.h"
        
        @implementation MYView
        
        - (void)drawRect:(CGRect)rect {
            // 編寫繪圖方法
        }
        
        @end
        

        繪制直線

        假如需要繪制直線,需要創建一個貝塞爾路徑對象,并指定路徑的開始點和結束點,然后在開始點和結束點之間添加一條連線。

        - (void)drawRect:(CGRect)rect {
            //獲取上下文/環境
            CGContextRef context = UIGraphicsGetCurrentContext();
            //設置畫筆寬度
            CGContextSetLineWidth(context, 3.0);
            //設置畫筆顏色
            CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
            
            //繪圖
            //創建繪圖路徑
            UIBezierPath *path = [UIBezierPath bezierPath];
            //設置起始點
            [path moveToPoint:CGPointZero];
            [path addLineToPoint:CGPointMake(200, 200)];
            //添加到上下文
            CGContextAddPath(context, path.CGPath);
            //渲染上下文
            CGContextStrokePath(context);
        }
        

        運行結果。

        繪制矩形

        當繪制矩形時,可以使用使用貝塞爾路徑的bezierPathWithRect:方法,傳入一個矩形的frame,然后渲染到屏幕上。

        - (void)drawRect:(CGRect)rect {
            //獲取上下文/環境
            CGContextRef context = UIGraphicsGetCurrentContext();
            //設置畫筆寬度
            CGContextSetLineWidth(context, 3.0);
            //設置畫筆顏色
            CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
            
            //繪圖
            //設置矩形的位置和大小
            CGRect myRect = CGRectMake(50, 50, 100, 100);
            //創建繪圖路徑
            UIBezierPath *path = [UIBezierPath bezierPathWithRect:myRect];
            //添加到上下文
            CGContextAddPath(context, path.CGPath);
            //渲染上下文
            CGContextStrokePath(context);
        
        }
        

        運行結果。

        繪制圓形/橢圓形

        對于圓形和橢圓形的繪制方法也非常簡單,在初始化貝塞爾路徑時,調用bezierPathWithOvalInRect:方法,并傳入一個指定的矩形區域,就可以得到一個充滿該矩形區域的圓形或橢圓形。

        - (void)drawRect:(CGRect)rect {
            //獲取上下文/環境
            CGContextRef context = UIGraphicsGetCurrentContext();
            //設置畫筆寬度
            CGContextSetLineWidth(context, 3.0);
            //設置畫筆顏色
            CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
            
            //繪圖
            //設置矩形的位置和大小
            CGRect myRect = CGRectMake(50, 50, 200, 100);
            //創建繪圖路徑
            UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:myRect];
            //添加到上下文
            CGContextAddPath(context, path.CGPath);
            //渲染上下文
            CGContextStrokePath(context);
        }
        

        運行結果。

        示例代碼

        https://github.com/99ios/14.1.4


        青青草国产成人久久_jizzjizz日本护士高清_亚洲 另类 国产 另类_99久久免费精品色老
        <p id="qitwt"></p>
          1. <object id="qitwt"><strong id="qitwt"></strong></object>
            <p id="qitwt"></p>
            <li id="qitwt"></li>
            <p id="qitwt"><del id="qitwt"><xmp id="qitwt"></xmp></del></p>
            <p id="qitwt"><label id="qitwt"></label></p>
          2. <acronym id="qitwt"></acronym>
            <p id="qitwt"></p>