ios绘图Word格式文档下载.docx
- 文档编号:19928320
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:21
- 大小:18.10KB
ios绘图Word格式文档下载.docx
《ios绘图Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ios绘图Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
//2.边框宽度
CGFloatborderW=10;
//3.开启图片上下文.
CGSizesize=CGSizeMake(image.size.width+2*borderW,image.size.height+2*borderW);
UIGraphicsBeginImageContextWithOptions(size,NO,0);
//4.先描述一个大圆,设为填充
UIBezierPath*path=[UIBezierPathbezierPathWithOvalInRect:
CGRectMake(0,0,size.width,size.height)];
[[UIColorredColor]set];
[pathfill];
//5.再添加一个小圆,把小圆设裁剪区域
path=[UIBezierPathbezierPathWithOvalInRect:
CGRectMake(borderW,borderW,image.size.width,image.size.height)];
[pathaddClip];
//6.把图片给绘制上下文.
[imagedrawInRect:
//7.生成一张新的图片
UIImage*newImage=UIGraphicsGetImageFromCurrentImageContext();
//8.关闭上下文.
UIGraphicsEndImageContext();
//抽取出来的功能
self.imageV.image=[UIImageimageWithBorderWidth:
10borderColor:
[UIColorgreenColor]image:
[UIImageimageNamed:
]];
}
-(UIImage*)imageWithBorderWidth:
(CGFloat)borderWborderColor:
(UIColor*)colorimage:
(UIImage*)image{
//设置边框的颜色
[colorset];
returnnewImage;
-(void)didReceiveMemoryWarning{
[superdidReceiveMemoryWarning];
//Disposeofanyresourcesthatcanberecreated.
//UIImage+image.m
@implementationUIImage(image)
+(UIImage*)imageWithBorderWidth:
//02-截屏
//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.
-(void)touchesBegan:
(NSSet*)toucheswithEvent:
(UIEvent*)event{
//1.开启图片上下文.
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,NO,0);
//获取当前的上下文.
CGContextRefctx=UIGraphicsGetCurrentContext();
//UIView之所能够显示,是因为它内部有一个层,layer.层是通过渲染的方法,给绘制上下文.
[self.view.layerrenderInContext:
ctx];
//生成一张图片.
//如何把图片转换成二进流.
NSData*data=UIImagePNGRepresentation(newImage);
[datawriteToFile:
/Users/gaoxinqiang/Desktop/newImage.png"
atomically:
YES];
//关闭上下文.
//03-图片截屏
//手指开始点
@property(nonatomic,assign)CGPointstartP;
//遮盖
@property(nonatomic,weak)UIView*coverView;
//懒加载遮盖,保存遮盖只创建一次.
-(UIView*)coverView{
if(_coverView==nil){
UIView*view=[[UIViewalloc]init];
view.backgroundColor=[UIColorblackColor];
view.alpha=0.7;
[self.viewaddSubview:
view];
_coverView=view;
}
return_coverView;
-(IBAction)pan:
(UIPanGestureRecognizer*)pan{
//获取当前手指所在的点.
CGPointcurP=[panlocationInView:
self.view];
if(pan.state==UIGestureRecognizerStateBegan){
CGPointstartP=curP;
self.startP=startP;
}elseif(pan.state==UIGestureRecognizerStateChanged){
CGFloatoffsetX=curP.x-self.startP.x;
CGFloatoffsetY=curP.y-self.startP.y;
//确定遮盖的区域位置
CGRectrect=CGRectMake(self.startP.x,self.startP.y,offsetX,offsetY);
//每次移动时,调用遮盖的Frame.
self.coverView.frame=rect;
}elseif(pan.state==UIGestureRecognizerStateEnded){
//1.开启一个跟原始图片相同大小的图片上下文.
UIGraphicsBeginImageContextWithOptions(self.imageV.bounds.size,NO,0);
//把self.cover.frame设为裁剪区域
UIBezierPath*path=[UIBezierPathbezierPathWithRect:
self.coverView.frame];
//获取当前上下文.
//把UIImageView当中的图片给绘制上下文当中.
[self.imageV.layerrenderInContext:
//从上下文当中生成一张新的图片
//给图片重新赋值
self.imageV.image=newImage;
//移除遮盖
[self.coverViewremoveFromSuperview];
//04-图片擦除
self.imageV.userInteractionEnabled=YES;
//添加手势
UIPanGestureRecognizer*pan=[[UIPanGestureRecognizeralloc]initWithTarget:
selfaction:
@selector(pan:
)];
[self.imageVaddGestureRecognizer:
pan];
-(void)pan:
//获取当前手指所在的点
self.imageV];
CGFloatrectWH=50;
CGFloatx=curP.x-rectWH*0.5;
CGFloaty=curP.y-rectWH*0.5;
CGRectrect=CGRectMake(x,y,rectWH,rectWH);
//开启一个图片上下文.
//把UImageViwe上面的图片给绘制到上下文.
//确定擦除区域
CGContextClearRect(ctx,rect);
//生成一张新图片
//把上下文给关闭
//给原来图片重新赋值
//ClockView.m
//05-手势解锁
ClockView.h"
@implementationClockView
-(void)awakeFromNib{
//添加按钮
[selfsetUP];
-(instancetype)initWithFrame:
(CGRect)frame{
if(self=[superinitWithFrame:
frame]){
returnself;
//添加按钮
-(void)setUP{
for(inti=0;
i<
9;
i++){
//创建按钮
UIButton*btn=[UIButtonbuttonWithType:
UIButtonTypeCustom];
btn.userInteractionEnabled=NO;
[btnsetImage:
gesture_node_normal"
]forState:
UIControlStateNormal];
gesture_node_highlighted"
UIControlStateSelected];
[selfaddSubview:
btn];
//获取当前手指所在的点
-(CGPoint)getCurrentPoint:
(NSSet*)touches{
UITouch*touch=[touchesanyObject];
return[touchlocationInView:
self];
//判断当前手指在不在按钮上.
-(UIButton*)btnRectContainsPoint:
(CGPoint)point{
for(UIButton*btninself.subviews){
//判断当前手指在不在按钮上.
//判断一个点在不在某个区域当中
if(CGRectContainsPoint(btn.frame,point)){
returnbtn;
returnnil;
//手指开始点击
NSLog(@"
%s"
__func__);
CGPointcurP=[selfgetCurrentPoint:
touches];
UIButton*btn=[selfbtnRectContainsPoint:
curP];
if(btn){
btn.selected=YES;
//手指移动的时候调用
-(void)touchesMoved:
//手指离开屏幕时调用
-(void)touchesEnded:
-(void)layoutSubviews{
[superlayoutSubviews];
intclomn=3;
CGFloatx=0;
CGFloaty=0;
CGFloatbtnWH=74;
CGFloatmargin=(self.bounds.size.width-btnWH*cl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ios 绘图