码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 画图基础

时间:2014-08-26 21:17:06      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   ar   div   cti   log   

基础要点:

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

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

#import <UIKit/UIKit.h>

@interface DrawView : UIView

@end

/*****************************/

#import "DrawView.h"

@implementation DrawView

static 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 画图基础

标签:style   blog   color   os   io   ar   div   cti   log   

原文地址:http://www.cnblogs.com/davesuen/p/3938173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!