重绘机制drawRect

AppDelegate.h文件

#import <UIKit/UIKit.h>


@interface AppDelegate : UIResponder <UIApplicationDelegate>


@property (strong, nonatomic) UIWindow *window;


@end


AppDelegate.m文件

#import "AppDelegate.h"

#import "MainViewDrawRect.h"


@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.

    self.window.backgroundColor = [UIColor whiteColor];

    

    

    MainViewDrawRect *mainView = [[MainViewDrawRect alloc] initWithFrame:CGRectMake(0, 20, 320, 320)];

    [self.window addSubview:mainView];

    

    [self.window makeKeyAndVisible];

    return YES;

}


MainViewDrawRect.h文件:

#import <UIKit/UIKit.h>


@interface MainViewDrawRect : UIView


@end


MainViewDrawRect.m文件:

#import "MainViewDrawRect.h"


@implementation MainViewDrawRect


- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        // Initialization code

        self.backgroundColor = [UIColor cyanColor];

    }

    return self;

}



// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect

{

    // Drawing code

    

    //获得处理的上下文

    CGContextRef context = UIGraphicsGetCurrentContext();

    //设置线条样式

    CGContextSetLineCap(context, kCGLineCapSquare);

    //设置线条粗细宽度

    CGContextSetLineWidth(context, 1.0);

    

    //设置颜色

    CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);

    //开始一个起始路径

    CGContextBeginPath(context);

    //起始点设置为(0,0):注意这是上下文对应区域中的相对坐标,

    CGContextMoveToPoint(context, 0, 0);

    //设置下一个坐标点

    CGContextAddLineToPoint(context, 100, 100);

    //设置下一个坐标点

    CGContextAddLineToPoint(context, 0, 150);

    //设置下一个坐标点

    CGContextAddLineToPoint(context, 50, 180);

    //连接上面定义的坐标点

    CGContextStrokePath(context);

}

@end


运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值