您的位置:首页 > 产品设计 > UI/UE

在UIView中与UIViewController中画图

2014-12-19 14:42 585 查看
在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];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息