ios 在View裡繪圖

來源:互聯網
上載者:User

1、建立ViewBasedApplication

2、添加一個新的objective-c class,並設定為UIView的子類,可以命名為MyView

3、重寫MyView的方法

- (void)drawRect:(CGRect)rect

這個方法是在MyView裡定義的,重寫這個方法可以顯示自己重繪的內容

在方法內,添加以下代碼,實現漸層顏色

CGContextRef context = UIGraphicsGetCurrentContext();
    CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
    CGFloat colors[] =
    {
        204.0 / 255.0, 224.0 / 255.0, 244.0 / 255.0, 1.00,
        29.0 / 255.0, 156.0 / 255.0, 215.0 / 255.0, 1.00,
        0.0 / 255.0,  50.0 / 255.0, 126.0 / 255.0, 1.00,
    };
    CGGradientRef gradient = CGGradientCreateWithColorComponents      
    (rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));
    CGColorSpaceRelease(rgb);    
    CGContextDrawLinearGradient(context, gradient,CGPointMake    
                                (0.0,0.0) ,CGPointMake(0.0,self.frame.size.height),                    
                                kCGGradientDrawsBeforeStartLocation);

以下代碼可以在視圖螢幕上畫出一個字元

UIColor *magentaColor =
    [UIColor colorWithRed:0.5f
                    green:0.0f
                     blue:0.5f
                    alpha:1.0f];
    /* Set the color in the graphical context */
    [magentaColor set];
    /* Load the font */
    UIFont *helveticaBold =
    [UIFont fontWithName:@"HelveticaNeue-Bold"
                    size:30.0f];
    /* Our string to be drawn */
    NSString *myString = @"Angry bird";
    /* Draw the string using the font. The color has
     already been set */
    [myString drawAtPoint:CGPointMake(25, 190)
                 withFont:helveticaBold];

然後在螢幕上畫出一條斜線

CGContextRef ref=UIGraphicsGetCurrentContext();//拿到當前被準備好的畫板。在這個畫板上畫就是在當前視圖上畫
    
    CGContextBeginPath(ref);//這裡提到一個很重要的概念叫路徑(path),其實就是告訴畫板環境,我們要開始畫了,你記下。
    
    CGContextMoveToPoint(ref, 0, 0);//畫線需要我解釋嗎?不用了吧?就是兩點確定一條直線了。
    
    CGContextAddLineToPoint(ref, 300,300);
    
    CGFloat redColor[4]={1.0,0,0,1.0};
    
    CGContextSetStrokeColor(ref, redColor);//設定了一下當前那個畫筆的顏色。畫筆啊!你記著我前面說的windows畫圖板嗎?
    
    CGContextStrokePath(ref);//告訴畫板,對我移動的路徑用畫筆畫一下。

 

在ViewController裡重寫方法(我這裡叫game01ViewController,裡建立項目時自動產生的,繼承於UIViewController)

 

@interface game01ViewController : UIViewController {

- (void) loadView {
    MyView *view = [[MyView alloc] init];
    self.view = view;
}

 執行個體化MyView,然後將控制器的view屬性設為MyView的對象view,這樣就可以了

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.