IOS开发:手势画板涂鸦
2016-01-22 14:07
393 查看
上代码!!!
<span style="font-size:14px;color:#990000;"><span style="background-color: rgb(255, 255, 255);">#import <UIKit/UIKit.h>
@interface DrawControll : UIViewController
@end
</span></span><pre name="code" class="objc">#import "DrawControll.h"
#import "DrawViewB.h"
@interface DrawControll ()
@property (weak, nonatomic) IBOutlet DrawViewB *drawS;
@end
@implementation DrawControll
- (IBAction)breaks:(id)sender {
[self.drawS breakLine];
}
- (IBAction)clearnLine:(id)sender {
[self.drawS clearn];
}
- (IBAction)savePicture:(id)sender {
[self.drawS save];
}
- (void)viewDidLoad {
[self.drawS openPhoto:^{
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:nil];
}];
[super viewDidLoad];
}
--------------------------------------------------------------------------
<span style="font-size:14px;color:#990000;"><span style="background-color: rgb(255, 255, 255);">#import <UIKit/UIKit.h>
@interface DrawControll : UIViewController
@end
</span></span><pre name="code" class="objc">#import "DrawControll.h"
#import "DrawViewB.h"
@interface DrawControll ()
@property (weak, nonatomic) IBOutlet DrawViewB *drawS;
@end
@implementation DrawControll
- (IBAction)breaks:(id)sender {
[self.drawS breakLine];
}
- (IBAction)clearnLine:(id)sender {
[self.drawS clearn];
}
- (IBAction)savePicture:(id)sender {
[self.drawS save];
}
- (void)viewDidLoad {
[self.drawS openPhoto:^{
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:nil];
}];
[super viewDidLoad];
}
--------------------------------------------------------------------------
#import <UIKit/UIKit.h> typedef void(^photoBlocl)(); @interface DrawViewB : UIView @property (nonatomic,copy)photoBlocl myblock; /** * 回退 */ - (void)breakLine; /** * 保存 */ - (void)save; /** * 清除 */ - (void)clearn; /** * 打开相册回调 */ - (void)openPhoto:(photoBlocl)block; @end
#import "DrawViewB.h" @interface DrawViewB () @property (nonatomic,strong)NSMutableArray* lines; @end @implementation DrawViewB - (NSMutableArray*)lines { if (!_lines) { _lines = [NSMutableArray array]; } return _lines; } #pragma mark 开始触摸 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch* touch = [touches anyObject]; CGPoint poinit = [touch locationInView:self]; // 创建贝塞尔对象 UIBezierPath* path = [UIBezierPath bezierPath]; // 起始点 [path moveToPoint:poinit]; // 添加到数组 [self.lines addObject:path]; // 绘画 [self setNeedsDisplay]; } #pragma mark 触摸中 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch* touch = [touches anyObject]; CGPoint poinit = [touch locationInView:self]; [[self.lines lastObject] addLineToPoint:poinit]; [self setNeedsDisplay]; } #pragma mark 结束触摸 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { UITouch* touch = [touches anyObject]; CGPoint poinit = [touch locationInView:self]; [[self.lines lastObject] addLineToPoint:poinit]; [self setNeedsDisplay]; } #pragma mark 保存图片 - (void)save { // 获得图片 UIGraphicsBeginImageContextWithOptions(self.frame.size, YES, 0.0); [self.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage* picture = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // 保存到相册 UIImageWriteToSavedPhotosAlbum(picture, nil, nil, nil); self.myblock(); } #pragma makr 清除 - (void)clearn { [self.lines removeAllObjects]; [self setNeedsDisplay]; } #pragma mark 回退 - (void)breakLine { [self.lines removeLastObject]; [self setNeedsDisplay]; } - (void)openPhoto:(photoBlocl)block { self.myblock = block; } - (void)drawRect:(CGRect)rect { for (UIBezierPath* path in self.lines) { [path setLineWidth:5]; [path stroke]; } }
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器