当前位置: 首页 > news >正文

邯郸公司网站建设/淘数据官网

邯郸公司网站建设,淘数据官网,网易网站建设,高端品牌衣服排行榜前十名资源下载地址:https://download.csdn.net/download/sheziqiong/85813646 资源下载地址:https://download.csdn.net/download/sheziqiong/85813646 需要具备iOS绘画基础知识 完成一个最基本的涂鸦板给涂鸦板加上颜色选择功能,和笔触粗细功能 …

资源下载地址:https://download.csdn.net/download/sheziqiong/85813646
资源下载地址:https://download.csdn.net/download/sheziqiong/85813646

需要具备iOS绘画基础知识

  • 完成一个最基本的涂鸦板
  • 给涂鸦板加上颜色选择功能,和笔触粗细功能

效果图:

完成一个最基本的涂鸦板

下载代码后见文件PaintViewV01,看效果请在ViewController中找到PaintView,换成PaintView01

步骤和原理

  • 重写uiview的 init、initWithFrame方法,主要是添加一个白色的背景色
  • 重写touchesBegan、touchesMoved、touchesEnded,作用是接收屏幕触摸的坐标,手指接触uiview后会依次执行这三个方法。 其中重写touchesBegan和重写touchesEnded只在开始和结束执行一次,而手指在移动的过程中,会多次执行touchesMoved
  • 重写drawRect方法,根据用户手指的移动,画出涂鸦

代码

# import "PaintViewV01.h"@implementation PaintViewV01{//画的线路径的集合,内部是NSMutableArray类型NSMutableArray *paths;
}http://www.biyezuopin.vip-(instancetype)init{self = [super init];if (self) {//初始化uiview的样式[self paintViewInit];}return  self;
}
-(instancetype)initWithFrame:(CGRect)frame{self = [super initWithFrame:frame];if (self) {//初始化uiview的样式[self paintViewInit];}return  self;
}//初始化paintViewInit样式和数据
-(void)paintViewInit{//添加背景色self.backgroundColor = [UIColor whiteColor];//初始化路径集合paths = [[NSMutableArray alloc]init];
}-(void)drawRect:(CGRect)rect{//必须调用父类drawRect方法,否则 UIGraphicsGetCurrentContext()获取不到context[super drawRect:rect];//获取ctxCGContextRef ctx = UIGraphicsGetCurrentContext();//渲染所有路径for (int i=0; i<paths.count; i++) {NSMutableArray *pathPoints = [paths objectAtIndex:i];CGMutablePathRef path = CGPathCreateMutable();for (int j=0; j<pathPoints.count; j++) {CGPoint point = [[pathPoints objectAtIndex:j]CGPointValue] ;if (j==0) {CGPathMoveToPoint(path, &CGAffineTransformIdentity, point.x,point.y);}else{CGPathAddLineToPoint(path, &CGAffineTransformIdentity, point.x, point.y);}}//路径添加到ctCGContextAddPath(ctx, path);//描边CGContextStrokePath(ctx);}
}-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{//创建一个路径,放到paths里面NSMutableArray *path = [[NSMutableArray alloc]init];[paths addObject:path];
}http://www.biyezuopin.vip-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{//获取当前路径NSMutableArray *path = [paths lastObject];//获取当前点CGPoint movePoint = [[touches anyObject]locationInView:self];NSLog(@"touchesMoved     x:%f,y:%f",movePoint.x,movePoint.y);//CGPint要通过NSValue封装一次才能放入NSArray[path addObject:[NSValue valueWithCGPoint:movePoint]];//通知重新渲染界面,这个方法会重新调用UIView的drawRect:(CGRect)rect方法[self setNeedsDisplay];
}-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{}@end

完成后,就可以画画了,不过只能画固定粗细的黑色笔画,下面,我我们增加彩色笔画和控制粗细的功能


给涂鸦板加上颜色和笔触粗细选择的功能

下载代码后见文件PaintViewV02,看效果请在ViewController中找到PaintView,换成PaintView02

步骤

  • 增加一个数据对象,封装笔触pathPoint、笔触颜色、笔触粗细
  • 修改变量名称,增加变量
  • 修改界面,添加色板,和笔触粗细选择器
  • 修改原来的touchesBegan,touchesMoved方法,将选择的颜色数据和粗细数据封装
  • 修改drawRect方法

增加一个数据对象,封装笔触pathPoint、笔触颜色、笔触粗细

# import <Foundation/Foundation.h>
# import <UIKit/UIKit.h>@interface PaintStep : NSObject{@public//路径NSMutableArray *pathPoints;//颜色CGColorRef color;//笔画粗细float strokeWidth;
}@end
# import "PaintStep.h"@implementation PaintStep@end

修改变量名称,增加变量,

paths 改名为 paintSteps,并增加currColor和slider两个变量

//屏幕的宽高,做自适应用的
# define width  [UIScreen mainScreen].bounds.size.width
# define height [UIScreen mainScreen].bounds.size.height@implementation PaintViewV02{//画的线路径的集合,内部是NSMutableArray类型NSMutableArray *paintSteps;//当前选中的颜色UIColor *currColor;//当前笔触粗细选择器UISlider *slider;}

修改界面,添加色板,和笔触粗细选择器

(void)paintViewInit 方法增加对两个方法的调用 —

-(void)paintViewInit 方法增加....//创建色板[self createColorBord];//创建笔触粗细选择器[self createStrokeWidthSlider];
}

创建色板和创建笔触粗细选择器的实现


//创建色板
-(void)createColorBord{//默认当前笔触颜色是黑色currColor = [UIColor blackColor];//色板的viewUIView *colorBoardView = [[UIView alloc]initWithFrame:CGRectMake(0, 20, width, 20)];[self addSubview:colorBoardView];//色板样式colorBoardView.layer.borderWidth = 1;colorBoardView.layer.borderColor = [UIColor blackColor].CGColor;//创建每个色块NSArray *colors = [NSArray arrayWithObjects:[UIColor blackColor],[UIColor redColor],[UIColor blueColor],[UIColor greenColor],[UIColor yellowColor],[UIColor brownColor],[UIColor orangeColor],[UIColor whiteColor],[UIColor orangeColor],[UIColor purpleColor],[UIColor cyanColor],[UIColor lightGrayColor], nil];for (int i =0; i<colors.count; i++) {UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake((width/colors.count)*i, 0, width/colors.count, 20)];[colorBoardView addSubview:btn];[btn setBackgroundColor:colors[i]];[btn addTarget:self action:@selector(changeColor:) forControlEvents:UIControlEventTouchUpInside];}}//切换颜色
-(void)changeColor:(id)target{UIButton *btn = (UIButton *)target;currColor = [btn backgroundColor];
}//创建笔触粗细选择器
-(void)createStrokeWidthSlider{slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 50, width, 20)];slider.maximumValue = 20;slider.minimumValue = 1;[self addSubview:slider];
}

完成后,我们的画板就可以画出彩色的笔画,控制粗细了。之后,我会继续给画板增加一些功能,并把方法写出来。


资源下载地址:https://download.csdn.net/download/sheziqiong/85813646
资源下载地址:https://download.csdn.net/download/sheziqiong/85813646

http://www.lbrq.cn/news/1467343.html

相关文章:

  • 帮忙注册公司要多少钱/seo学校
  • 网站开发到上线需要多久/seo好学吗入门怎么学
  • 网站服务器如何做热备价/云搜索系统
  • 佛山外贸网站建设/键词优化排名
  • 网站推广公司成功的经典案例/seo快速排名优化
  • 网页设计学校网站/seo优化一般包括哪些
  • 关于网站开发的个人小结/人力资源培训与开发
  • 开个捕鱼网站怎么做/免费注册网站有哪些
  • 网站开发实习/三亚百度推广公司电话
  • 学做招投标的网站有哪些/上海小红书seo
  • 深圳网站建设流程/如何建立一个自己的网站啊
  • 蕲春做网站/网络营销理论基础有哪些
  • 建设网站是普通办公吗/windows优化大师是电脑自带的吗
  • j2ee 建设简单网站/推广普通话作文
  • 山东恒昆建设工程有限公司网站/免费有效的推广平台
  • 网站页面设计最宽可做多宽/互联网平台公司有哪些
  • 企业网站怎么优化/定制化网站建设
  • wordpress div属性/快速优化seo软件推广方法
  • 深圳东莞网站开发/优化设计
  • 做服装批发网站/汕头网站排名优化
  • 靠谱的做任务赚钱网站/搜索引擎营销的实现方法有哪些
  • 国内专门做旅游攻略的网站/香港百度广告
  • 企业网站素材/百度网页广告怎么做
  • 曲阜建设公司网站/seo教学网seo
  • 昌平区住房和建设委员会官方网站/电商网站建设步骤
  • 湛江免费网站制作/b站推广网站2023
  • 张家港网站建设培训学校/新华传媒b2b商务平台
  • 中国招聘网/做网站怎么优化
  • 百度该网站无法进行访问阿里云/网络软文广告
  • 网站服务器知识/病毒营销案例
  • leetcode热题——组合
  • 入门MicroPython+ESP32:安装逗脑IDE及驱动
  • 【Android】通知
  • IMAP电子邮件归档系统Mail-Archiver
  • 社群团购市场选择与开源技术赋能下的下沉市场开拓策略研究——以开源AI智能名片、链动2+1模式与S2B2C商城小程序为例
  • 机器学习 —— 决策树