iOS学习笔记-063.画板
来源:互联网 发布:java编程题及答案 编辑:程序博客网 时间:2024/05/21 11:17
- 画板
- 一简要说明
- 二代码
- ViewControllerm
- WMViewm
- 三图示
画板
一、简要说明
保存的是路径 UIBezierPath
二、代码
1.ViewController.m
//// ViewController.m// 03_UIView54_画板//// Created by 杞文明 on 2016/04/18 07:59:41 星期一// Copyright © 2016年 杞文明. All rights reserved.//#import "ViewController.h"#import "WMView.h"#import "MBProgressHUD+NJ.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet WMView *wmVIew;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];}//回退- (IBAction)backView:(id)sender { [self.wmVIew backImage];}//清除- (IBAction)clearView:(id)sender { [self.wmVIew clearImage];}//保存- (IBAction)savaView:(id)sender { UIImage *image = [self.wmVIew getImage]; UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);}- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInf{ if (error) { [MBProgressHUD showError:@"保存失败"]; } else { [MBProgressHUD showSuccess:@"保存成功"]; }}@end
2.WMView.m
//// WMView.m// 03_UIView54_画板//// Created by 杞文明 on 2016/04/18 07:46:51 星期一// Copyright © 2016年 杞文明. All rights reserved.//#import "WMView.h"@interface WMView ()@property (nonatomic, strong) NSMutableArray *paths;@end@implementation WMView-(NSMutableArray*)paths{ if (_paths==nil) { _paths = [[NSMutableArray alloc]init]; } return _paths;}//按下- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //1.获取touch UITouch * touch = [touches anyObject]; //2.获取点 CGPoint point = [touch locationInView:touch.view]; //3.创建路径 UIBezierPath * path = [UIBezierPath bezierPath]; [path moveToPoint:point]; //4.保存路径 [self.paths addObject:path];}//移动- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //1.获取touch UITouch * touch = [touches anyObject]; //2.获取点 CGPoint point = [touch locationInView:touch.view]; //3.获取到最后一个路径 UIBezierPath * path = [self.paths lastObject]; //4.添加点 [path addLineToPoint:point]; //5.需要绘制 [self setNeedsDisplay];}//抬起- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self touchesMoved:touches withEvent:event];}//绘画- (void)drawRect:(CGRect)rect { for ( UIBezierPath *path in self.paths) { [path stroke]; }}//回退- (void)backImage{ [self.paths removeLastObject]; [self setNeedsDisplay];}//清除-(void)clearImage{ [self.paths removeAllObjects]; [self setNeedsDisplay];}//获取图片-(UIImage*)getImage{ //1.获取图片上下文 UIGraphicsBeginImageContext(self.bounds.size); //2.绘制到图片上下文中 [self.layer drawInContext:UIGraphicsGetCurrentContext()]; //3.返回UIImage return UIGraphicsGetImageFromCurrentImageContext();}@end
三、图示
0 0
- iOS学习笔记-063.画板
- java画板学习笔记
- iOS开发脚踏实地学习day15-画板
- IOS学习之——画板 涂鸦
- ios 画板
- 画板 ios
- java swing 学习笔记一(画板Panel )
- 学习笔记--android中surfaceview 简单用法实例:画板。
- iOS 简单画板
- IOS画板程序
- ios--小画板Demo
- ios-自定义画板
- iOS画板实现
- iOS OC 涂鸦、画板
- iOS 简易的画板
- iOS 画板、涂鸦
- 十四 iOS之 画板
- canvas简单画板笔记
- Problem 371. Sum of Two Integers
- Python学习记录(二)
- Windows7上完全卸载Oracle 12c操作步骤
- Python+Selenium基础篇之2-打开和关闭火狐浏览器
- C编程小练习
- iOS学习笔记-063.画板
- SQL UNION 和 UNION ALL 操作符
- 获取验证码倒计时
- php多进程造成数据错乱
- 斐波那契数列,递归算法 C#
- android studio build.gradle 文件详解
- Buffer数据结构
- AS-->打开第三方项目之前,必做的事(新手必看)
- OpenGL 笔记