在UIView中与UIViewController中画图

来源:互联网 发布:明星加入外国国籍 知乎 编辑:程序博客网 时间:2024/04/30 11:28

在UIView中,直接画

- (void)drawRect:(CGRect)rect {    CGContextRef context=UIGraphicsGetCurrentContext();    CGContextSaveGState(context);    NSString *myImageName=@"message_i";        UIImage *image=[UIImage imageNamed:myImageName];        [image drawInRect:CGRectMake(rectMsg.origin.x, rectMsg.origin.y-3, rectMsg.size.width+17, rectMsg.size.height+7)];        [self.msg drawInRect:rectMsg withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:23],NSForegroundColorAttributeName:[UIColor whiteColor]}];     CGContextRestoreGState(context);}

在UIViewController中,需要拿到画布,若有图片UIImage还需要画好后从内存中读取出来

- (void)viewDidLoad {    [super viewDidLoad];    CGRect rect=CGRectMake(0, 0, 240, 300);    //这里是没有画布的 只有创建一个画布    UIGraphicsBeginImageContext(rect.size);    //有画布可以用UIBezierPath    UIBezierPath *path=[UIBezierPath bezierPathWithOvalInRect:rect];    [path addClip];    UIImage *image=[UIImage imageNamed:@"image1.jpg"];    [image drawInRect:rect];    //好处 就是可以在画布里面随意加东西    [@"Hello World" drawAtPoint:CGPointMake(20, 20) withAttributes:@{NSFontAttributeName:[UIFont italicSystemFontOfSize:30],NSForegroundColorAttributeName:[UIColor purpleColor]}];    //从内存中弄到界面上    image=UIGraphicsGetImageFromCurrentImageContext();    UIImageView *imageview=[[UIImageView alloc]initWithImage:image];    rect.origin=CGPointMake(40, 80);    imageview.frame=rect;    [self.view addSubview:imageview];}


0 0
原创粉丝点击