在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];
}
这篇博客探讨了如何在UIView及其控制器UIViewController中进行图形绘制。内容详细介绍了利用UIView直接进行绘图的方法,同时也涉及到了UIImage和UIImageView在图形处理中的应用。
4084

被折叠的 条评论
为什么被折叠?



