首页 > 代码库 > iOS 画图基础

iOS 画图基础

基础要点:

1,画图不可以在 ViewController 里,而是应该在一个 UIView 的子类中,比如新建一个 DrawView 继承自 UIView。

2,覆盖 UIView 的 drawRect 方法,使得它画符合需要的图。

#import <UIKit/UIKit.h>@interface DrawView : UIView@end/*****************************/#import "DrawView.h"@implementation DrawViewstatic int height = 0;- (void)drawRect:(CGRect)rect{    NSLog(@"drawRect");    height = height + 10;    CGRect bounds = [self bounds];    [[UIColor yellowColor] set];    UIRectFill(bounds);    CGRect square = CGRectMake(50, 50, 100, height);    [[UIColor greenColor] set];    UIRectFill(square);    [[UIColor blackColor] set];    UIRectFrame(square);}@end

 

3,画图时通过对 DrawView 的一个对象调用 ([view setNeedsDisplay];)来自动调用 drawRect 来画图。View 需要是一个 DrawView 对象。

- (IBAction)drawView:(id)sender{    NSLog(@"drawView");    [view setNeedsDisplay];}

 

 

4,注意,一下几种情况 drawRect 不被调用:

  (1)当view的frame的size为(0,0)的时候,系统是不会执行drawrect方法的。

  (2)当这个view没有superview的情况(view 为最外层的 UIView),依然不会执行drawrect

补充说明:当view.hidden=YES或者view.frame超出边界的情况依然会调用drawrect方法,由此可以看出不执行drawrect方法之就有这两种情况。

 

iOS 画图基础