ios 继承UIView实现自定义视图——实现画图

这篇博客介绍了如何在iOS中通过继承UIView并重写drawRect和触摸事件来创建自定义画图视图。利用二次贝塞尔曲线绘制曲线,并使用可变数组保存路径和绘图参数。支持清除与回退操作,可以通过清除数组对象实现。同时,可以获取到画图的UIImage对象,并详细记录了画笔的宽度、颜色以及当前状态(绘画或擦除)。
摘要由CSDN通过智能技术生成

主要的原理包括:

继承UIView ,重载drawrect和重载触摸事件

路径数组保存等。

用可变数据保存path路径以及绘图的一些参数

画曲线是通过二次贝塞尔曲线实现的

清除以及回退通过可变数组的清除以及removelastobjecs实现

这里可以得到画图的UIImage对象

 UIGraphicsBeginImageContext(self.bounds.size);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *result=UIGraphicsGetImageFromCurrentImageContext();
   
    UIGraphicsEndImageContext();
    return  result;

画笔的上下文信息保存

主要包括画笔宽度,颜色,以及当前处于什么状态是画还是橡皮擦等

@interface Context : NSObject
{
    UIColor *pick_color;
    float  paint_width;
    int choose;
    CGPoint cru_point;
    int pic_id;//以后如果要加入画图片
    //可以用图片id数组
}
-(void) set_color:(UIColor *)color;
- (void) set_choose:(int )mychoose;
- (void) setpaint_width:(float) width;
- (UIColor *) get_color;
- (int) getchoose;
- (fl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值